In meinem Test habe ich ein Textfeld mit einem bereits vorhandenen Text. Ich möchte den Inhalt löschen und eine neue Zeichenfolge eingeben.
let textField = app.textFields
textField.tap()
// delete "Old value"
textField.typeText("New value")
Beim Löschen von Zeichenfolgen mit Hardwaretastatur wird für mich keine Aufzeichnung generiert. Nachdem ich dasselbe mit der Software-Tastatur gemacht hatte, bekam ich:
let key = app.keys["Usuń"] // Polish name for the key
key.tap()
key.tap()
... // x times
oder
app.keys["Usuń"].pressForDuration(1.5)
Ich habe mir Sorgen gemacht, dass mein Test sprachabhängig ist, deshalb habe ich für meine unterstützten Sprachen Folgendes erstellt:
extension XCUIElementQuery {
var deleteKey: XCUIElement {
get {
// Polish name for the key
if self["Usuń"].exists {
return self["Usuń"]
} else {
return self["Delete"]
}
}
}
}
Im Code sieht es besser aus:
app.keys.deleteKey.pressForDuration(1.5)
aber es ist sehr zerbrechlich. Nach dem Beenden von Simulator Toggle software keyboard
wurde zurückgesetzt und ich habe einen fehlgeschlagenen Test. Meine Lösung funktioniert nicht gut mit CI-Tests. Wie kann dies gelöst werden, um universeller zu sein?
Toggle software keyboard
Einstellung zu haben. Gibt es noch etwas in der Textansicht, das die Tastatur verbergen / schließen könnte?