gpt4 book ai didi

android-uiautomator - 如何在不使用索引或 x,y 坐标的情况下使用 UIAutomator 添加帐户?

转载 作者:行者123 更新时间:2023-12-04 08:08:46 28 4
gpt4 key购买 nike

我目前使用的是 Nexus 5 设备。

我正在尝试点击屏幕上的“删除帐户”。我使用了 UIAutomatorViewer 工具并找到了屏幕上所有元素的节点详细信息。有三个元素对应于我正在查看的“添加帐户”。

这是布局层次结构: (1) 线性布局[468,265][1056,509] -(0) 相对布局[516,400][1008,473] --(0) TextView:删除账户[516,400][1008,473]

(1) 线性布局[468,265][1056,509]索引 1文本空资源 ID 为空类 android.widget.LinearLayout包 com.android.settings内容描述为空可点击为真

(0) 相对布局[516,400][1008,473]索引 1文本资源编号类 android.widget.LinearLayout包 com.android.settings内容描述为空可点击错误

(0) TextView:删除帐户[516,400][1008,473]索引 0文本删除帐户资源 id android:id/title类 android.widget.TextView包 com.android.settings内容描述为空可点击错误

理想情况下,我想通过单击具有文本“删除帐户”的元素来实现此操作,但这是不可能的,因为该元素不可单击。 UiObject nextButton = new UiObject(new UiSelector().text("删除账户"));

或者,我可以通过其索引和类名来引用可点击元素 UiObject nextButton = new UiObject(new UiSelector().index(1).className("android.widget.LinearLayout");或引用 x,y 坐标 getUiDevice().click(600, 450);但是,这 2 种方法可能会在以后增加维护成本。

这是 Android 上最基本的屏幕之一。我希望应该有比我在这里发布的更好的解决方案。有没有人有任何其他建议?

最佳答案

更好的方法是使用 getFromParent() 在层次结构中找到 TextView 元素的父 UI 元素,在我们的示例中是 LinearLayout 并单击它:

UiObject nextButton = new UiObject(new UiSelector().text("Remove account"));

UiObject parent =nextButton.getFromParent(new UiSelector().new UiSelector().className("android.widget.LinearLayout");
parent.clickAndWaitForNewWindow();

关于android-uiautomator - 如何在不使用索引或 x,y 坐标的情况下使用 UIAutomator 添加帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24472941/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com