当前位置: 代码迷 >> Android >> Appium,Android-在另一个元素中查找元素
  详细解决方案

Appium,Android-在另一个元素中查找元素

热度:127   发布时间:2023-08-04 10:55:13.0

我正在尝试检查元素是否存在,但是当我们指定该元素应位于另一个元素内时,appium似乎忽略了搜索该元素。 例如:

driver.findElementByAccessibilityId("First element").findElementByAccessibilityId("Second element");

它应该以某种方式工作,因为Appium检查器中有一个名为Locator的选项,在选择策略并从所选元素选项中选择搜索之后,它会找到我所期望的。

查找此类元素的正确方法是什么?

您可以将xpath用于相同的对象。 情况的样本xpath将类似于:

driver.findElement(By.xpath("//*[@accessibility-id='FirstElement']//*[@accessibility-id='FirstElement']"))

第一个元素和第二个元素之间的//表示第一个元素是开始搜索第二个元素的基础元素。 因此它将在第一个元素的范围之间搜索第二个元素

简单的解决方案,但不是以下最干净的解决方案:

我正在使用TestNG框架,我认为它不允许诸如以下声明

private WebElement element= driver.findElementByAccessibilityId("First element").findElementByAccessibilityId("Second element");

一个简单的解决办法,但不是最好的办法是只声明父母为:

@FindBy(name="Parent")
private WebElement ParentElement;

然后以测试用例为例:

ParentElement.findElement(By.name("childElement")).isDisplayed())

将第一个元素作为父元素,第二个元素作为子元素-

 MobileElement parentButtonList = (MobileElement)driver.findElementById(parentClassIdentifier);
List<MobileElement> childButtonList = parentButtonList.findElementsById(childClassIdentifier);
  相关解决方案