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

问题描述 投票:0回答:4

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

非常感谢!

android appium uiautomator
4个回答
2
投票

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


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

如果你知道text属性的值,你可以使用类似:[contains(@text, 'some part of text')]


1
投票

试试这个:

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

0
投票

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

self.driver.find_element_by_accessibility_id('SomeAccessibilityID').get_attribute('contentDescription')
© www.soinside.com 2019 - 2024. All rights reserved.