在发现XPATH时,Appium查找错误的元素



我正在使用Selenium和Appium在开发脚本上工作,并且我遇到了硒定位器所挑选的错误元素的问题。

本质上,我想单击一个未分配ID的按钮;因此,我剩下的唯一一件事就是它的文字。

public Element button1(){
    By locator = By.xpath("//android.widget.TextView[@text='button1']");
    return new xElement(driver.findElement(locator), locator);
}

这是我获取Button1对象的定位方法。顺便说一句,屏幕上没有其他按钮在靠近Button 1的文本附近的任何文本。按钮上调用的方法click具有格式:

public void clickBtn1(){
    button1().click();
}

单击的按钮本质上具有文字"独轮车"。这只是为了澄清所按下的按钮的文字没有接近按钮1的值。

我多次使用UI Automator来确认Button1的实际文本值。奇怪的是脚本有时会起作用,所以我不确定问题是什么。

我还尝试了一种"等待启用"方法来考虑比赛条件。

尝试使用Appium Inspector搜索您的按钮。您可以输入XPath并搜索元素以查看其找到的内容。关于检查员的另一个好处是,您可以看到本机控制属性如何映射到Appium属性。"文本"可能不是您实际想要的属性。另外,您是否尝试过在按钮本身上搜索属性(而不是TextView)?

如果偶尔工作,请首先尝试使用XPath以外的其他元素。其次,在执行该动作之前先尝试一些睡眠命令,例如

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(ByLocator(locator)));

最新更新