是否建立了可访问性标识符的命名约定(与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在录制过程中如何获取变量的名称?
我知道,我可以手动执行录制并清理变量名称。但是,如果可以在某处轻松配置,那将是愚蠢的。