使用Python在Appium / Android上选择一个元素,该元素在UIAutomatorViewer上具有相同的Class和另一个元素的相同索引

时间:2018-02-14 19:36:24

标签: android python appium appium-android uiautomatorviewer

我正在测试一个应用程序,在大多数屏幕上,我看到有些元素具有相同的类" android.widget.TextView"索引编号相同" 0"。所有其他属性也相同,只有例外是" text"并且"绑定"。

我有" Skip"," Next"和"跳过下一个3"作为屏幕上具有除文本和边界属性之外的相同属性的文本。我需要知道如何点appium点击所需的项目..说我想点击"下一步",我该怎么做。我正在使用Python进行脚本编写。

3 个答案:

答案 0 :(得分:2)

您可以搜索具有相同类名的所有匹配的Web元素,这将返回匹配元素的列表。然后循环遍历找到的元素并比较它们的文本,例如:

KotlinType

答案 1 :(得分:2)

按照Chuk Ultima说的那样可行,但如果你有很多TextView,可能需要一段时间。

您可以使用:

((AndroidDriver<MobileElement>)driver).findElementByAndroidUIAutomator("new UiSelector().text(\"Next\")");

http://www.automationtestinghub.com/uiselector-android/

中查看更多用法

答案 2 :(得分:1)

嗯,在我的情况下,我终于使用遍历节点来解决问题,比如我创建了xpath以从特定位置获取Text(时间值),如下所示:

Time = self.driver.find_element_by_xpath('//android.widget.LinearLayout[@index=2]/android.view.ViewGroup[@index=0]/android.view.ViewGroup[@index=0]/android.view.ViewGroup[@index=0]/android.view.ViewGroup[@index=3]/android.view.ViewGroup[@index=0]/android.widget.TextView[@index=0]').get_attribute('text')

我知道这是一个繁琐的过程,但暂时这对我来说是解决方案。