26

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

4

5 回答 5

61

可以使用 Identity Inspector 选项卡的“用户定义的运行时属性”在 IB 中设置accessibilityIndentifier:

关键路径:accessibilityIdentifier

类型:字符串

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

例如,将滚动视图设置为具有可访问性 ID 'ScrollView': 来自 Xcode 8.3.2 的图像

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

于 2012-12-13T23:56:19.660 回答
11

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

在此处输入图像描述

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

于 2015-11-17T07:36:51.123 回答
5

根据这个页面

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

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

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

于 2012-01-13T11:11:54.477 回答
1

AccessibilityIdentifier 仅适用于 IOS 5.0 或更高版本....请参考....

https://developer.apple.com/library/ios/documentation/uikit/reference/UIAccessibilityIdentification_Protocol/Introduction/Introduction.html

于 2014-01-28T05:58:50.370 回答
0

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

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

于 2014-08-08T11:27:48.460 回答