【问题标题】:can I set accessibility identifier in interface builder? Xcode4.2我可以在界面生成器中设置可访问性标识符吗? Xcode4.2
【发布时间】:2011-10-26 09:52:46
【问题描述】:

我只能在界面生成器中设置辅助功能标签,但在 UI 自动化中,我需要辅助功能标识符来获取 UI 元素。 有什么办法吗?

【问题讨论】:

    标签: ios accessibility ios-ui-automation


    【解决方案1】:

    可使用身份检查器选项卡的“用户定义的运行时属性”在 IB 中设置accessibilityIndentifier:

    关键路径:accessibilityIdentifier

    类型:字符串

    值:选择的可访问性标识符文本

    例如将滚动视图设置为具有可访问性 ID 'ScrollView':

    注意:这只能用于具有 accessIdentifier 属性的项目,这意味着它们从 UIView 继承。此外,“关键路径”中的拼写错误可能会在加载项目时导致异常,我不相信会给出编译警告/错误。

    【讨论】:

    • 这是最好的答案,这样可访问性标签,这是一个面向用户的结构,不会被程序细节污染。
    • 我同意,这是最好的答案!
    • 为什么不能用于 UIViewController?
    【解决方案2】:

    在 Xcode 7.1 (ios 9.0) 中,您可以尽可能简单地做到这一点。请找到所附图片。

    您可以简单地以 view.accessibilityIdentifier 的形式访问它

    【讨论】:

    • 对我不起作用,我必须改用约瑟夫的答案stackoverflow.com/a/13870658/1392046 - Xcode7.2.1/iOS8
    • 其实我用9.0.1测试过
    • 同意:尽管表面上看,但在将 accessibilityIdentifier 与 UI 测试一起使用时,这不起作用,而 @Joseph 使用用户定义属性的答案可以。
    【解决方案3】:

    根据这个页面

    http://developer.apple.com/library/ios/#documentation/AnalysisTools/Conceptual/WhatsNewInstruments/NewFeatures42/NewFeatures42.html

    如果未设置accessibilityIdentifier,UIAutomation 将使用accessibilityLabel,因此您现在可以使用它。这可能不是最佳实践,因为如果用户使用 VoiceOver,accessibilityLabel 对用户是可见的(或者更确切地说是可听),但只要您给标签名称提供对人类有意义的名称就可以了.

    希望 Apple 将来会在 IB 中添加一种设置 accessIdentifier 的方法,但现在您必须在代码中设置它,或者使用其他东西(例如 view 标签)来定位视图以实现自动化。

    【讨论】:

      【解决方案4】:

      【讨论】:

        【解决方案5】:

        我想知道,你想测试 xib 中没有 IBOutlet 的东西吗?有更多经验的人可以分享一下他/她的想法吗?

        这是我对这个主题的看法。 如果您不将 IBOutlet 分配给按钮/标签/texBox 或者这意味着您不会从代码中更改它。该控件将是静态的,您可以在界面生成器中看到它。 如果将 IBOutlet 添加到控件,则可以从代码中添加 acessibilityIdentifier。

        【讨论】:

        • 我需要做 UIAutomation,这需要无障碍 id。
        猜你喜欢
        • 1970-01-01
        • 2018-11-10
        • 1970-01-01
        • 2015-11-14
        • 2016-12-11
        • 1970-01-01
        • 2013-12-30
        • 2023-03-15
        • 1970-01-01
        相关资源
        最近更新 更多