2016-07-26 406 views
1

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

screenshot of visible: false attribute in appium.

测试总是失败每次尝试互动时间了(点击,点击,的SendKeys等)与这些 '隐形' 的元素。 示例:

driver.findElement(By.xpath(“...”))。click();

日志中Appium时出现错误: screenshot Appium logs

问题:

  • 如何与这些元素进行交互?
  • 将它们标记为可见的基础是什么:false?
  • 有什么我可以改变我的HTML标记,使元素'可见'真实?

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

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

*我使用Java客户端Appium 4.0.0,Selenium 2.53.1,Xcode 7.3。

+1

已经使用使用位置driver.tap()方法试过吗?在我们的代码中,appium日志中显示的错误是什么? – noor

+0

感谢您的回复。我用我的日志截图更新了问题。它不断返回给我这个错误'elementId 0 could not be tapped'。 –

+0

如何使用tap方法,使用元素还是使用locaiton? – noor

回答

0

尝试通过使用下面2 API:

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

tap(int fingers, WebElement element, int duration) 

使用1作为INT手指参数x = 3且y = 662的第一API和用于第二遍元素。使用700期

API细节https://appium.github.io/java-client/io/appium/java_client/ ...

+0

它确实有效!谢谢! –

+0

谢谢.... :-) – noor