在我的测试中,我有一个带有预先存在的文本的文本字段。我想删除内容并输入新字符串。
let textField = app.textFields
textField.tap()
// delete "Old value"
textField.typeText("New value")
用硬件键盘删除字符串时,录音对我来说什么都没有产生。用软件键盘做完同样的事情后,我得到了:
let key = app.keys["Usuń"] // Polish name for the key
key.tap()
key.tap()
... // x times
要么
app.keys["Usuń"].pressForDuration(1.5)
我担心自己的测试取决于语言,因此我为受支持的语言创建了以下内容:
extension XCUIElementQuery {
var deleteKey: XCUIElement {
get {
// Polish name for the key
if self["Usuń"].exists {
return self["Usuń"]
} else {
return self["Delete"]
}
}
}
}
在代码中看起来更好:
app.keys.deleteKey.pressForDuration(1.5)
但是非常脆弱。从模拟器退出后,Toggle software keyboard
被重置,并且我的测试失败。我的解决方案不适用于CI测试。如何解决这个问题才更普遍?
Toggle software keyboard
设置没有任何影响。文本视图中是否还有其他东西可以隐藏/关闭键盘?