accessibilityIdentifier的良好命名约定? - XCode 7 UI测试 - 录制

时间:2015-12-11 23:55:23

标签: ios xcode xcode-ui-testing

是否建立了可访问性标识符的命名约定(与Xcode UI测试记录相关)?

我正在研究可访问性和UI测试。我在Xcode 7中使用了新的Record功能。在录制UI动作时,我注意到了:

当我有一个标有“a”的按钮并记录两次点按时,我会收到以下代码:

XCUIElement *aButton = [[XCUIApplication alloc] init].buttons[@"a"];
[aButton tap];
[aButton tap];

当我将accessibilityIdentifier设置为“a”并重复录制时,我会得到相同的代码。

本地化标签是否会干扰辅助功能标识符? (如果在某些语言中按钮X突然有“a”作为标签,而按钮Y有“a”作为可访问性标识符 - 这是不明确/冲突的吗?)

我的第一个想法是为辅助功能标识符设置一个唯一的前缀 - 比如“@”。所以我尝试了“@a”,“@ 1”等等。

然而,对于“@ 1”,录音会导致此代码:

XCUIElement *1Button = [[XCUIApplication alloc] init].buttons[@"@1"];
[1Button tap];
[1Button tap];

这会产生编译器错误,因为1Button不是有效的标识符。显然,可访问性标识符被添加到按钮的变量名称前面,并删除了一些字符。

使用“1”时,录音将导致此代码:

XCUIElement *button = [[XCUIApplication alloc] init].buttons[@"1"];
[button tap];
[button tap];

这引出了另一个问题:

我能否影响Xcode在录制过程中如何获取变量的名称?

我知道,我可以手动执行录制并清理变量名称。但是,如果可以在某处轻松配置,那将是愚蠢的。

0 个答案:

没有答案