我在原生Android应用程序上使用Appium版本(1.4)
我想阅读红色框中的文字节目。 我也无法根据content-desc和index找到元素。
这些是我尝试过但未能找到它的一些代码。
根据索引
选择父子driver.findElement(By.xpath("//android.view.View[@index='2']/android.view.View[@index='0']"))
使用class和content-desc
driver.findElement(By.xpath("//android.widget.Button[@content-desc='Your balance is: 100.00$ ']")).click();
使用类并迭代列表
List<WebElement> arrayOfProperties2 = driver.findElements(By.xpath("//android.view.View"));
System.out.println("Found arrayOfProperties2 total: "+ arrayOfProperties2.size());
在这种情况下,列表的大小为零。
该方案是阅读自余额变化后显示的文字。
我能够在活动中找到其他元素,但不能找到上面的元素。
答案 0 :(得分:1)
尝试使用以下xpath:
//*[@class = 'android.view.View' and contains(@content-desc,'Your balance is')]
希望这会对你有所帮助,让我知道会发生什么。
答案 1 :(得分:-1)
使用AndroidViewClient/culebra会很容易。
使用
启动Culebra GUIculebra --use-regexps --gui
,生成的脚本将包含类似
的行no_id25 = vc.findViewWithContentDescriptionOrRaise(re.compile(u'''Your balance is: 100.00$ Heading'''))
将其更改为更合适的正则表达式
no_id25 = vc.findViewWithContentDescriptionOrRaise(re.compile(u'''Your balance is: \d+.\d+\$ Heading'''))
它应与您的视图相匹配。
严格地说,如果您不打算进行互动并且只想匹配视图,则可以在没有--gui
的情况下运行它。