我有一个 iOS 应用程序,我正在尝试使用 Appium 对其运行自动化测试。
我的一些测试失败了,因为 DOM 树中缺少一些对象。但是当我查看模拟器屏幕时,我看到那些对象就在那里。
什么可能造成这些差异?我什至不确定这是谁的错 - 里面的iOS代码是不是很糟糕?是苹果的错吗?还是 Appium 的错?
非常感谢您的帮助
最佳答案
考虑到您的反馈,元素未显示在 Appium 中但在您使用的设备/模拟器的屏幕上清晰可见的原因可能有多种。我知道或读到的:
- 这是操作系统问题。 Appium 依赖于操作系统的可访问层。更新或降级您的操作系统可以解决此问题,但不提供任何保证。
- 该应用正在使用自定义控件。仅当制作控件的开发人员实现了可访问性时,自定义控件才可访问。
- 您也有可能遇到已知或未知的错误。请务必检查Appium github issues查找已知错误,或从开发人员那里获取解决新错误的帮助。
如果尝试其他版本的操作系统或实现辅助功能无法解决问题或不可能,您将需要使用坐标点击元素。如果其他一切都失败了,这是最后的解决方案。
关于上述问题,可以找到一篇非常有用的文章 here 。它还包含解决这些特定问题的所有资源,例如如何以正确的方式点击坐标。
关于iOS DOM 树不代表屏幕上的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56016280/