如何在appium中使用UIAutomator找到元素

时间:2015-03-02 23:59:14

标签: android appium uiautomator

我正在使用appium测试android混合应用程序。谁能告诉我如何使用UIAutomator找到元素,因为appium给出的xpath在我的情况下不起作用。

非常感谢!

4 个答案:

答案 0 :(得分:2)

我的应用程序在真实设备上测试(但也可以在Emulator上)连接到我的桌面并运行它,打开一些屏幕/页面。比我作为管理员运行uiautomatorviewer.bat(奇怪,但我必须以管理员身份运行它)。我点击UI Automator Viewer左上角的Device Screenshot图标,我可以在右侧窗格中看到屏幕截图和Android类。我可以浏览,点击不同的元素并观察它们的层次结构。

答案 1 :(得分:1)

在条款上方查看链接和ListView是否具有资源ID或文本属性?

我认为您可以尝试以下内容:

xpath="(//android.widget.ListView[contains(@resource-id,'some_id')]//android.widget.View)[2]/android.widget.View"

尝试找到该节点,然后创建该子节点的相对路径。

// - means any after (any child)
/ - goes immediate after
[2] - the second item that corresponds the criteria

如果您知道文字属性的值,则可以使用以下内容:[contains(@text, 'some part of text')]

答案 2 :(得分:1)

试试这个:

driver.findElementsByXPath("//*[@class='android.view.View' and @index='0']");

答案 3 :(得分:0)

按照这种方法使用UIautomator从任何元素获取attributec('contentDescription')-

self.driver.find_element_by_accessibility_id('SomeAccessibilityID').get_attribute('contentDescription')