Nel mio test ho un campo di testo con un testo preesistente. Voglio eliminare il contenuto e digitare una nuova stringa.UI Test eliminazione del testo nel campo di testo
let textField = app.textFields
textField.tap()
// delete "Old value"
textField.typeText("New value")
Quando si elimina la stringa con la tastiera hardware Registrazione generata per me nulla. Dopo aver fatto lo stesso con tastiera software ho ottenuto:
let key = app.keys["Usuń"] // Polish name for the key
key.tap()
key.tap()
... // x times
o
app.keys["Usuń"].pressForDuration(1.5)
Ero preoccupato che la mia prova è dipendente dalla lingua così ho creato qualcosa di simile per i miei lingue supportate:
extension XCUIElementQuery {
var deleteKey: XCUIElement {
get {
// Polish name for the key
if self["Usuń"].exists {
return self["Usuń"]
} else {
return self["Delete"]
}
}
}
}
sembra più bello in codice:
app.keys.deleteKey.pressForDuration(1.5)
ma è molto fragile. Dopo aver lasciato il simulatore, il Toggle software keyboard
è stato ripristinato e il test è fallito. La mia soluzione non funziona bene con i test CI. Come può essere risolto questo per essere più universale?
Non riesco a riprodurre l'errore riscontrato. Ho aggiunto la stessa estensione, ho cambiato la lingua del mio simulatore in polacco e ho verificato che il tasto "Usún" fosse intercettato. Il riavvio/ripristino del simulatore non sembra avere alcun effetto sull'impostazione "Attiva tastiera software". C'è qualcos'altro nella visualizzazione del testo che potrebbe nascondere/chiudere la tastiera? –
Forse dopo il riavvio del sistema ho ripristinato il comando "Attiva tastiera software". Non è predefinito per il simulatore (e non so se questo può essere modificato). In questo modo o nell'altro il mio metodo non è affidabile finché non è possibile correggere le impostazioni della lingua e della tastiera del software dal livello del test (o dallo schema di test). –
Il mio commento mi ha dato un'idea e ho trovato l'impostazione della lingua in Schema> Opzioni> Lingua dell'applicazione. Il problema della tastiera rimane ancora irrisolto. –