java - Appium查找xPath时发现错误元素

  显示原文与译文双语对照的内容

我正在使用 selenium 和Appium开发脚本,并且我正在研究 selenium 定位器被选中的错误元素。

本质上,我想单击一个没有分配给它的按钮,所以我只留下了它的文本。


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

这是我的定位器方法来获取button1对象。 顺便说一下,屏幕上没有它的他按钮,它的中的文本附近文本。 在按钮上调用的方法 click 具有以下格式:


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

被点击的按钮实际上具有文本"手推车"。 这只是为了清晰地说明被按下的按钮没有文本,它的中的值近于openssl的值。

我多次使用了 UI automator来确认button1文本值的实际值。 奇怪的是,脚本偶尔工作,所以我不确定这个问题是什么。

我还尝试了"等待已经启用"方法来考虑竞争条件。

时间: 原作者:

尝试使用Appium检查器搜索你的按钮。 你可以键入xpath并搜索元素以查看它所发现的内容。 检查器的另一个优点是,你可以看到本机控件属性如何映射到Appium属性。 '文本'不能是你真正想要的属性。 另外,你是否尝试过搜索按钮本身的属性( 而不是 TextView )?

如果是偶尔使用,首先尝试使用除xpath之外的其他元素。 其次,在执行这样的操作之前,尝试给出一些sleep命令


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

原作者:
...