ios - 可识别 CALayer 对象的 iOS 应用程序 UI 自动化工具

标签 ios object user-interface calayer ios-ui-automation

我正在尝试自动化测试,以测试具有 CA 层对象的应用程序。 Apple 提供的 UI 自动化框架不识别 CA 层对象。我想要一个有助于识别 CA 层对象的 ui 自动化工具列表。我可以得到工具列表吗?

最佳答案

UI 自动化无法访问 CA 层对象,因为它们未暴露给 iOS 中的可访问性机制。您可以通过从符合 UIAccessibilityContainer 的对象开始向可访问性 API 公开您的层。协议(protocol)。该对象将提供一组 UIAccessibilityElement将镜像您的 CA 层表示的对象。届时,UI 自动化将能够“看到”用户在查看原始 CA 层时看到的内容。

您可以通过此策略获得两个好处。视障人士现在可以通过 Voice Over 等方式访问您的应用,并且您可以通过 UI Automation 与您的应用对话。

这是 Apple 对不使用为您提供辅助功能的 native UIKit 功能的应用程序的建议。恕我直言,我认为遵循这条道路是个好主意,因为 Apple 在无障碍功能上押下了重注,而且 future 只会更深入地集成到操作系统中。

关于ios - 可识别 CALayer 对象的 iOS 应用程序 UI 自动化工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13232518/

相关文章:

Java无法从同一目录中的.class中找到符号

javascript - 如何获取 JSON 对象的引用

iphone - 如何制作一个漂亮的 UITextView 并根据需要扩展(就像 SMS 应用程序中使用的那样)?

html - Firefox 与其他填充对齐方式的差异

java - 有没有一种方法可以将对象设置为重叠并符合网格系统?

ios - 使用自动布局在 UIScrollView 中居中可变宽度的文本列

ios - `numberOfItemsInSection` 仅在添加数组中的第一项后调用,将项目限制为只有一个

ios - 使用 CGMutablePathRef 的缺点?

ios - UITextField ResignFirstResponder 在 UIScrollView 上崩溃

java - 无法转换为 [Ljava.lang.Object;