我正在使用appium测试android混合应用程序。谁能告诉我如何使用UIAutomator找到元素,因为appium给出的xpath在我的情况下不起作用。
非常感谢!
答案 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')