2016-09-30 2 views
3

Manchmal versucht der Compiler unter UITests in Xcode, auf die Schaltfläche zu tippen, bevor sie geladen und präsentiert wird. Dann entsteht ein Problem wie no matched found for....Wie warte ich unter UITests in Xcode, bis eine Ansicht für Tap sichtbar ist?

Aber die einfache Lösung dafür ist:

sleep(1) //wait 1 second and give `mybutton` time to load and be accessible for uitests 
mybutton.tap() 

Aber das ist schrecklich, da ich nicht dort 0.1 als Parameter setzen kann. Und es nervt mich, 1 Sekunde vor vielen Tasten zu warten.

Gibt es eine Möglichkeit zu warten, bis es für Benutzer sichtbar ist?

Antwort

5

Sie sollten eine XCTestExpectation und warten schaffen es 3

expectationForPredicate(NSPredicate(format: "hittable == true"), evaluatedWithObject: mybutton, handler: nil) 
waitForExpectationsWithTimeout(10.0, handler: nil) 

mybutton.tap() 
+1

Für Swift erfüllt werden können Sie 'handler' Parameter verlassen. –

Verwandte Themen