使用iOS按钮时的XCTest UI

时间:2018-03-16 02:31:57

标签: localization xcuitest

我正在进行一些使用EN(开发语言)的UI测试。但在使用其他语言测试时却不是这样。例如,可以通过

轻触SearchBar中的“取消”按钮
    app.buttons["Cancel"].tap()

但是用西班牙语"取消"实际上是" Cancelar"所以当用西班牙语运行时,测试无法找到按钮。

一种方法是按索引查找按钮,但这很危险,因为如果Apple将按钮移动到其他索引,它可能会中断。

app.buttons.element(boundBy: indexOfCancelButton).tap()

是否有更简单,更可靠的方法来处理这个问题?

谢谢!

1 个答案:

答案 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()