Sie müssen eine Erwartung hinzufügen, damit das MenüItem angezeigt wird. Beachten Sie, dass doubleTap()
funktioniert nur, wenn das Textfeld bereits den Fokus hat, so dass Sie
let app = XCUIApplication()
UIPasteboard.generalPasteboard().string = "hello"
let enterPasswordTextField = app.textFields["textField"]
enterPasswordTextField.tap()
expectationForPredicate(NSPredicate(format: "count > 0"), evaluatedWithObject: app.menuItems, handler: nil)
enterPasswordTextField.doubleTap()
waitForExpectationsWithTimeout(10.0, handler: nil)
app.menuItems["Paste"].tap()
Beachten Sie eine zusätzliche tap()
vor doppelt tippen sollte hinzufügen, dass es nicht die beste Idee sein könnte, den Zugang der menuitem mit dem lokalisierten Test zu verwenden , da dies bei Geräten auf nicht-englischen Geräten fehlschlagen kann. Daher sollten Sie eine ausgeklügelte Logik verwenden, um den Speicherort des Einfügemenüelements zu bestimmen. Für den Anfang in der stark vereinfachte Hypothese, dass das Textfeld leer ist, können Sie
app.menuItems["Paste"].tap()
mit
app.menuItems.elementsBoundByIndex(2).tap()
Hallo Tomas danke für die Antwort, aber es funktioniert immer noch nicht. –
Was genau funktioniert nicht? Erhalten Sie einen Fehler? –
Hallo Tomas, danke für die Antwort, aber es funktioniert immer noch nicht. Ich habe versucht, den gleichen Code und immer noch Fehler und ich möchte doppeltippen SecureTextField. (Nicht normal TextField) Fehler: Asynchrone warten gescheitert: überschritten Timeout von 10 Sekunden, mit unerfüllten Erwartungen: "erwarten Prädikat' count> 0' für Objekt < XCUIElementQuery: 0x7fb148f1cd60> ". –