iOS DOM 树不代表屏幕上的对象

标签 ios dom appium

我有一个 iOS 应用程序,我正在尝试使用 Appium 对其运行自动化测试。

我的一些测试失败了,因为 DOM 树中缺少一些对象。但是当我查看模拟器屏幕时,我看到那些对象就在那里。

什么可能造成这些差异?我什至不确定这是谁的错 - 里面的iOS代码是不是很糟糕?是苹果的错吗?还是 Appium 的错?

非常感谢您的帮助

最佳答案

考虑到您的反馈,元素未显示在 Appium 中但在您使用的设备/模拟器的屏幕上清晰可见的原因可能有多种。我知道或读到的:

  • 这是操作系统问题。 Appium 依赖于操作系统的可访问层。更新或降级您的操作系统可以解决此问题,但不提供任何保证。
  • 该应用正在使用自定义控件。仅当制作控件的开发人员实现了可访问性时,自定义控件才可访问。
  • 您也有可能遇到已知或未知的错误。请务必检查Appium github issues查找已知错误,或从开发人员那里获取解决新错误的帮助。

如果尝试其他版本的操作系统或实现辅助功能无法解决问题或不可能,您将需要使用坐标点击元素。如果其他一切都失败了,这是最后的解决方案。

关于上述问题,可以找到一篇非常有用的文章 here 。它还包含解决这些特定问题的所有资源,例如如何以正确的方式点击坐标。

关于iOS DOM 树不代表屏幕上的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56016280/

相关文章:

ios - 无法理解崩溃的堆栈跟踪

java - XML 解析 - 仅从具有特定 ID 的父节点获取节点

javascript - 在 jquery 中创建一个元素

java - 如何同时打开浏览器和android并同时运行测试?

ios - 当应用程序关闭或终止时,将 textField 中的数据保存到文件中

iphone - UIBarButtonItem 不显示

javascript - 加载对象内容后运行 Javascript 函数

android - Appium:无法在 Android 混合应用程序中使用 Xpath 定位元素?

python - 如何使用 Appium(最好是 python)拍摄 native iOS 屏幕截图并自动在设备/模拟器相册中查看它们?

ios - 有没有办法查看文本字段的值是否等于 Swift 中字典中的值?