使用xPath查找时,Appium查找错误的元素

时间:2015-05-08 22:08:00

标签: java android selenium xpath appium

我正在使用Selenium和Appium开发一个开发脚本,我遇到了Selenium Locator拾取错误元素的问题。

基本上,我想点击没有分配ID的按钮;所以我唯一要留下的就是它的文字。

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

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

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

点击的按钮基本上有文字“独轮车”。这只是为了澄清被按下的按钮的文字没有接近button1的值。

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

我还尝试了“等待启用”方法来解释竞争条件。

2 个答案:

答案 0 :(得分:1)

尝试使用Appium检查器搜索您的按钮。您可以键入xpath并搜索元素以查看它找到的内容。检查器的另一个好处是您可以看到本机控件属性如何映射到Appium属性。 '文本'可能不是您真正想要的属性。此外,您是否尝试在Button本身(而不是TextView)上搜索属性?

答案 1 :(得分:1)

如果它偶尔工作,首先尝试使用除xpath之外的其他元素。其次,在执行

之类的操作之前尝试给出一些睡眠命令
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(ByLocator(locator)));