我正在尝试检查元素是否存在,但当我们指定它应该在另一个元素内时,appium似乎忽略了搜索元素。例如:
driver.findElementByAccessibilityId("First element").findElementByAccessibilityId("Second element");
它应该以某种方式工作,因为Appium检查器中有一个名为Locator的选项,在选择策略并从selected元素选项中选择搜索后,它会找到我期望的内容。
找到这些元素的正确方法是什么?
答案 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);