【问题标题】:Appium xpath contain follow not workingAppium xpath 包含跟随不工作
【发布时间】:2016-12-28 02:32:33
【问题描述】:

我无法在 Appium 中使用 xpath 包含和遵循策略。我不知道 Appium 是否支持它。 API 级别 19 。 谁能帮忙: 我必须点击显示余额的文本视图,即。印度卢比…… 所以我正在使用

   driver.findElement(By.xpath("//android.widget.TextView[contains(@name,'INR')]"));
   and     
  driver.findElement(By.xpath("//android.widget.TextView[contains(text(),'INR')]"));

但没有任何效果

【问题讨论】:

  • 您的脚本中是否收到某种异常或错误消息?您共享的步骤仅尝试查找元素,但不尝试对其执行任何操作。
  • @Domestus,是的,它无法找到元素..
  • 你可以使用 driver.findElement(By.accessibilityId("INR 1,567.89"))

标签: android selenium xpath selenium-webdriver appium


【解决方案1】:

@Sahil Sehgal:因为您的元素没有 name 属性,所以您可以使用 text 属性来查找元素。在下面的示例中,我添加了“可用余额”和“INR”的检查。使用适合您需要的那个 -

driver.findElement(By.xpath("//android.widget.TextView[contains(@text, 'Available Balance')]")).click();
driver.findElement(By.xpath("//android.widget.TextView[contains(@text, 'INR')]")).click();

【讨论】:

  • 这是主要问题。我已尝试使用上述代码,但无法找到元素。
  • 你能发布错误日志吗?你尝试了哪一个?在上面的解决方案中,我使用的是 @text 而不是 text()
  • ,我想 '@text' 在 xpath 中不是有效的语法
  • 看起来很奇怪,当涉及到 Appium 时,@text 是 xpath 的正确语法。
【解决方案2】:

使用全文搜索。希望这会奏效。

driver.findElement(By.xpath("//android.widget.TextView[@text='INR 1,567.89']")).click();

【讨论】:

  • 在上述解决方案中,当客户余额发生变化时,xpath 仅适用于该余额(1,567.89 卢比),测试将失败。
【解决方案3】:

如我所见,android.widget.TextView 是类属性。

你的 xpath 不应该是这样的:

//*[contains(@class, 'widget')][contains(text(),'INR')]

始终在检查器中手动尝试选择器。

【讨论】:

    【解决方案4】:

    这不是您的 xpath 的问题,而是 appium 的错误。看到这个: appium issue on emulators

    【讨论】:

      猜你喜欢
      • 2016-08-14
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 2017-09-23
      • 2019-07-26
      • 2018-12-30
      • 2015-09-20
      • 1970-01-01
      相关资源
      最近更新 更多