【问题标题】:Appium Finding Wrong Element when Finding With xPath使用 xPath 查找时 Appium 发现错误的元素
【发布时间】:2015-07-19 22:40:00
【问题描述】:

我正在使用 Selenium 和 Appium 编写开发脚本,但遇到了 Selenium 定位器拾取错误元素的问题。

本质上,我想单击一个没有分配 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 的实际文本值。奇怪的是脚本偶尔会起作用,所以我不确定问题是什么。

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

【问题讨论】:

标签: java android selenium xpath appium


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-04-25
      • 2017-09-14
      • 1970-01-01
      • 2023-03-18
      • 2016-08-30
      • 2016-10-08
      • 2020-05-19
      • 2019-05-06
      • 2020-03-15
      相关资源
      最近更新 更多