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

时间:2015-10-22 08:33:00

标签: android testing selenium-webdriver testng appium

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

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

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

找到这些元素的正确方法是什么?

3 个答案:

答案 0 :(得分:1)

您可以使用xpath。情况的示例xpath将如下:

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

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

答案 1 :(得分:0)

简单的解决方案,但不是最清洁的:

我正在使用TestNG框架,我认为不允许声明,例如

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

简单的解决方案,但不是最好的解决方案是仅将父母声明为:

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

然后在测试用例中:

{{1}}

答案 2 :(得分:0)

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

 MobileElement parentButtonList = (MobileElement)driver.findElementById(parentClassIdentifier);
List<MobileElement> childButtonList = parentButtonList.findElementsById(childClassIdentifier);