2017-08-09 4 views

Antwort

5

Wenn es um den Umgang mit Zeitproblem kommt, ist es verlockend und einfach ein „schnellen“ browser.sleep zu setzen() und zieht weiter.

Das Problem ist, es würde eines Tages fehlschlagen. Es gibt keine goldene/generische Regel dafür, welches Sleep-Timeout eingestellt werden soll. Daher kann es länger dauern, dass eine Seite geladen wird oder ein Element sichtbar wird, usw. Dies kann zu einem bestimmten Zeitpunkt aufgrund von Netzwerk- oder Performance-Problemen oder anderen Problemen länger dauern Die Zeit, Sie würden am Ende warten mehr als Sie eigentlich sollten.

browser.wait() auf der anderen Seite funktioniert anders. Sie stellen eine Expected Condition function für den Progractor/WebDriverJS zur Verfügung und warten auf das Ergebnis der Funktion, um sie als wahr auszuwerten. Der Winkelmesser würde die Funktion kontinuierlich ausführen und stoppen, sobald das Ergebnis der Funktion wahr ist oder ein konfigurierbarer Timeout erreicht wurde.

Es gibt mehrere integrierte erwartete Bedingungen, aber Sie können auch eine benutzerdefinierte erstellen und verwenden (Beispiel here).

2

browser.sleep()

Spiel einen Befehl, um den Fahrer Schlaf für die gegebene Menge an Zeit zu machen.

browser.wait()

Spiel einen Befehl zu warten, eine Bedingung versprechen zu halten oder zu lösen.

Diese Funktion blockiert den Steuerfluss von WebDriver, nicht die Javascript-Laufzeit. Es wird nur die Ausführung von zukünftigen Webdriver-Befehlen verzögern (z. B. wird es bewirken, dass Protractor wartet, bevor zukünftige Befehle an den Selenium-Server gesendet werden) und nur wenn der Webdriver-Steuerfluß aktiviert ist.

Dokumentation Linkhttp://www.protractortest.org/#/api

Verwandte Themen