【问题标题】:Unable to find sub element using array list无法使用数组列表找到子元素
【发布时间】:2019-12-08 21:47:08
【问题描述】:

无法找到子元素。 嘿 , 我正在使用 Appium 编写 Android 应用自动化。 我有一个测试,我需要检查某个地方的三个按钮是否包含正确的文本。

我正在尝试使用 for 循环获取三个按钮。

在这里你可以看到我给 UiAutomatorViewer 带来的元素。

这是我找到的主要元素。

[![在此处输入图片描述][1]][1]

有我试图找到的子元素:

[![在此处输入图片描述][2]][2]

[![在此处输入图片描述][3]][3]

[![在此处输入图片描述][4]][4]

我尝试了一些代码,但出现错误提示:

org.openqa.selenium.NoSuchElementException: An element could not be 
located on the page using the given search parameters.
*** Element info: {Using=xpath, 
value=android.widget.TextView[@index='1']}

根据元素信息,我得到了每个元素的正确 xpath。

我做错了什么?

    List<MobileElement> buttons = 
 driver.findElements(By.xpath("//android.view.ViewGroup[@bounds='[170,946][910,1689]']"));
            for (int i = 1; i < buttons.size(); i++) {
                MobileElement button = (MobileElement) driver.findElement(By.xpath("android.widget.TextView[@index='"+i+"']"));
                System.out.println(button.getText());
            }


  [1]: https://i.stack.imgur.com/qhpBr.png
  [2]: https://i.stack.imgur.com/8owI4.png
  [3]: https://i.stack.imgur.com/SFaQb.png
  [4]: https://i.stack.imgur.com/QxpPw.png

【问题讨论】:

  • 猜你在寻找 MobileElement 按钮时错过了 xpath 中的 //"//android.widget.TextView[@index='"+i+"']"
  • 嗨 Prerna,我添加了 // 符号,但它仍然无法正常工作=[ MobileElement button = (MobileElement) driver.findElement(By.xpath("./android.widget.TextView[@index='"+i+"']"));
  • 您能再添加一下 HTML 吗?我不再在问题中看到它了..让我尝试找出可能存在的其他问题..

标签: android arrays automation appium


【解决方案1】:

您需要将. 添加到您的 XPath 表达式中才能使其工作:

MobileElement button = (MobileElement) driver.findElement(By.xpath("./android.widget.TextView[@index='"+i+"']"));

.选择当前节点

参考资料:

【讨论】:

  • 嗨 Dmitri T。我添加了一个 .到xpath,但仍然有同样的问题。有新代码:'List buttons = driver.findElements(By.xpath("//android.view.ViewGroup[@bounds='[170,946][910,1689]']")); for (int i = 1; i
猜你喜欢
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
  • 2020-04-09
相关资源
最近更新 更多