Erwartete Bedingungen Winkelmesser
Beim schreiben von selenium-tests in Python, habe ich verwendet, um mit Explizite Wartet viel für das warten auf eine Seite zu laden, oder für das warten auf ein element auf sichtbar oder anklickbar etc:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "myDynamicElement"))
)
Der Schlüsselbegriff hier ist die Bereitstellung eines Erwartete Bedingung zu warten, gibt es mehrere Arten:
Mit Erwarteten Bedingungen macht den code sauberer und zuverlässiger im Vergleich zu den mit sleep
s mit hardcoded Zeitabständen.
Nun, wechseln wir unsere end-to-end-testing-Infrastruktur zu protractor
viel.
Gibt es ähnliche Expected Conditions
im Winkelmesser, wie es in python-Selen
oder
java-selenium
? Wenn nicht, was ist der übliche Weg, um explizit warten, ein Zustand, in protractor
?
habe ich schon durchgesehen, Winkelmesser Dokumentation und nichts gefunden über Sie.
- Ist es das, was Sie wollen? github.com/angular/protractor/pull/1703
- nur wenn der Bau nicht scheitern 🙂 Scherz, genau, super! Wenn Sie Zeit haben - bitte posten einer Antwort über die Funktion hier, wenn nicht - ich kann es tun, einengen, lmk. Danke!!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einmal feat(expectedConditions) ist (wahrscheinlich Winkelmesser 1.7), die Sie tun können:
Bitte beachten Sie aber, wenn Sie arbeiten mit einem Winkel-app und Ihr test erfordert, dass diese bedingte wartet, es ist eine große rote fahne für das, was Sie tun, sind als Winkelmesser behandeln soll, wartet nativ.
browser.wait(//protractor.ExpectedConditions)
ist erforderlich wenn eine Aktion löst eine non-Angular-async task, wie eine vollständige Seite geladen wird. Vielleicht ist es auch (nur?) erforderliche wenn es ausgelöst wird eine route ändern.In Winkelmesser können Sie
browser.warten(fn, timeout)
.Beispiel:
Vielleicht helfen Sie, warten Sie, bis element Sichtbarkeit in der DOM.