【问题标题】:Appium can't detect screen (visible: false) elementsAppium 无法检测到屏幕(可见:假)元素
【发布时间】:2016-11-29 15:04:18
【问题描述】:

该项目是一个使用 cordova 的混合应用程序,可以在 android /ios 平台上运行(目前专注于 ios)。我已经设法设置 Appium 进行自动化测试,它工作得很好。 Appium 检查器出现问题,因为它可以看到一些元素但将它们标记为可见:false。

screenshot of visible: false attribute in appium.

每次尝试与这些“不可见”元素进行交互(单击、点击、发送键等)时,测试总是失败。 示例:

driver.findElement(By.xpath("...")).click();

出现错误时登录Appium: screenshot Appium logs

问题:

  • 如何与这些元素交互?
  • 将它们标记为可见的依据是什么:错误?
  • 我可以对我的 html 标记进行更改以使元素“可见”为真吗?

*我注意到我所有的矢量图标都标记为可见:false 这是一个大问题,因为我们的大多数导航都是图标。

*我已经尝试将我的 Appium 版本降级到 2.1.0(解决方案建议)。

*我正在使用 Java 客户端 Appium 4.0.0、Selenium 2.53.1、Xcode 7.3。

【问题讨论】:

  • 是否尝试过使用 location 的 driver.tap() 方法?在您的代码中,appium 日志中显示的错误是什么?
  • 感谢您的回复。我用我的日志截图更新了这个问题。它不断向我返回此错误“无法点击 elementId 0”。
  • 你如何使用tap方法,使用元素还是使用位置?
  • 我没有尝试过使用 .tap(),我虽然是 .click() 因为这是 Appium 检查器在录制时生成的。 driver.tap() 中可以接受哪些参数?我可以只输入元素的 xpath 吗?
  • tap(int finger, int x, int y, int duration) 和 tap(int finger, WebElement element, int duration) 使用 1 作为 int Finger 中的参数,x =3 和 y = 662第一个 api 和第二个传递元素。使用 700 作为持续时间 api 详细信息appium.github.io/java-client/io/appium/java_client/…

标签: cordova selenium selenium-webdriver appium appium-ios


【解决方案1】:

尝试使用以下 2 个 api:

tap(int fingers, int x, int y, int duration)

tap(int fingers, WebElement element, int duration) 

在 int finger 中使用 1 作为参数,x = 3 和 y = 662 用于第一个 api 和第二个传递元素。使用 700 作为持续时间

api详情https://appium.github.io/java-client/io/appium/java_client/...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2019-05-20
    • 2015-12-30
    • 2011-07-18
    • 1970-01-01
    相关资源
    最近更新 更多