- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前使用的是 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/
我是一名优秀的程序员,十分优秀!