【问题标题】:UI automation tools for iOS apps that can identify CALayer objects可以识别 CALayer 对象的 iOS 应用程序的 UI 自动化工具
【发布时间】:2012-11-05 12:52:28
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    UI 自动化无法访问 CA 层对象,因为它们没有暴露给 iOS 中的可访问性机制。您可以从符合UIAccessibilityContainer 协议的对象开始,将您的层暴露给可访问性 API。该对象将提供一组UIAccessibilityElement 对象,这些对象将反映您的 CA 层的表示。届时,UI 自动化将能够“看到”用户在查看原始 CA 层时看到的内容。

    您可以通过此策略获得两个好处。您的应用现在可以通过视觉障碍者的 Voice Over 等功能访问,并且您可以通过 UI 自动化与您的应用对话。

    对于不使用为您提供辅助功能的本机 UIKit 功能的应用程序,这是 Apple 建议的。恕我直言,我认为走这条路是个好主意,因为 Apple 在可访问性功能上下了很大的赌注,而且未来它只会随着与操作系统的集成而更加深入。

    【讨论】:

    • 感谢您的回复。现在我的应用程序代码在 C# 中。我使用 MonoTouch 来编写我的应用程序。有没有办法从 C# 中使用 UIAccessibilityContainer 和 UIaccessibilityElement。
    • 我尝试从 MonoTouch 获取对 UIAccessibilityContainer 的引用,但无法获取。请帮我解决这个问题。
    • 唉,我对 MonoTouch 一无所知。我没有使用过那个机制。我将不得不退出并让其他人来说话。
    • 这里有一些使用 CALayer 实现 UIAccessibilityContainer 的示例代码:stackoverflow.com/q/16428713/1804403
    猜你喜欢
    • 2014-02-25
    • 1970-01-01
    • 2011-01-13
    • 1970-01-01
    • 2012-01-17
    • 2019-01-21
    • 2017-08-17
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多