In meinem Test habe ich ein Textfeld mit einem bereits vorhandenen Text. Ich möchte den Inhalt löschen und eine neue Zeichenfolge eingeben.UI Test Löschen von Text im Textfeld
let textField = app.textFields
textField.tap()
// delete "Old value"
textField.typeText("New value")
Beim Löschen String mit Hardware-Tastatur Aufnahme für mich nichts generiert. Nachdem ich das gleiche mit Software-Tastatur 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 war besorgt, dass meine Testsprachabhängig ist, damit ich so etwas für meine unterstützten Sprachen erstellt haben:
extension XCUIElementQuery {
var deleteKey: XCUIElement {
get {
// Polish name for the key
if self["Usuń"].exists {
return self["Usuń"]
} else {
return self["Delete"]
}
}
}
}
Es sieht schöner in Code:
app.keys.deleteKey.pressForDuration(1.5)
aber es ist sehr zerbrechlich. Nach dem Beenden von Simulator wurde zurückgesetzt und ich habe einen fehlgeschlagenen Test. Meine Lösung funktioniert nicht gut mit CI-Tests. Wie kann das gelöst werden, um universeller zu sein?
Ich kann den Fehler, den Sie erleben, nicht reproduzieren. Ich fügte die gleiche Erweiterung hinzu, änderte die Sprache meines Simulators auf Polnisch und vergewisserte sich, dass die Taste "Usún" angetippt wurde. Das Neustarten/Zurücksetzen des Simulators scheint keine Auswirkungen auf die Einstellung "Toggle-Softwaretastatur" zu haben. Gibt es noch etwas in der Textansicht, das die Tastatur verstecken könnte? –
Vielleicht nach dem Neustart des Systems habe ich 'Toggle Software Keyboard' zurückgesetzt. Es ist kein Standard für den Simulator (und ich weiß nicht, ob das geändert werden kann). Auf diese oder jene Weise ist meine Methode nicht zuverlässig, bis Sie die Sprach- und Softwaretastatureinstellungen auf der Ebene des Tests (oder des Testschemas) korrigieren können. –
Mein eigener Kommentar gab mir eine Idee und ich habe die Sprache in Schema> Optionen> Anwendungssprache gefunden. Das Tastaturproblem bleibt weiterhin ungelöst. –