我正在进行一些使用EN(开发语言)的UI测试。但在使用其他语言测试时却不是这样。例如,可以通过
轻触SearchBar中的“取消”按钮 app.buttons["Cancel"].tap()
但是用西班牙语"取消"实际上是" Cancelar"所以当用西班牙语运行时,测试无法找到按钮。
一种方法是按索引查找按钮,但这很危险,因为如果Apple将按钮移动到其他索引,它可能会中断。
app.buttons.element(boundBy: indexOfCancelButton).tap()
是否有更简单,更可靠的方法来处理这个问题?
谢谢!
答案 0 :(得分:0)
在UI测试中为要与之交互的视图设置acceessibilityIdentifier
。
辅助功能标识符是非本地化的,因此在您更改运行测试的设备的语言时不会更改。
最终用户无法以任何方式看到辅助功能标识符,仅用于UI测试。
// app code
let button: UIButton!
button.accessibilityIdentifier = "cancelButton"
// test code
let app = XCUIApplication()
let cancelButton = app.buttons["cancelButton"]
cancelButton.tap()