我正在自动化一个移动应用程序。在大多数情况下,我都使用ID来查找元素。在找不到id的任何地方,我都使用了从Appium桌面应用程序中获取的XPath。但是,此XPath在另一版本的Android设备中正在更改。
有人可以协助我解决这个问题吗?我在这里很挣扎。
答案 0 :(得分:0)
In such scenarios, here is what you can do
在不同的android设备上查找元素的xpath并在页面中声明它们 对象模型。
@AndroidFindBy(xpath="//<xpath of the element>")
private MobileElement element1;
@AndroidFindBy(xpath="//<xpath of the element>")
private MobileElement element2;
您可以在Page对象模型类中编写一个辅助函数,该函数将告诉您 屏幕上是否存在特定元素。
公共布尔elementExist(Xpath xpath){ 如果(!appiumDriver.findElements(xpath).isEmpty()){ LOGGER.info(“元素确实存在”); 返回true; }其他{ LOGGER.info(“元素不存在”); 返回false; } }
然后,在测试用例中,您可以执行类似的操作
if(elementExist(element1)) {
click(element1);
} else if (elementExist(element2)) {
click(element2);
}...