Selenium: Überprüfen des Ladevorgangs einer Webseite
Viele Entwickler sind bestrebt, den vollständigen Ladevorgang einer Webseite in Selenium für nahtlose und genaue Tests zu validieren . Im Gegensatz zu expliziten Sichtbarkeitsprüfungen von Elementen gibt es jedoch keine vorgefertigte generische Funktion, um den Abschluss des Seitenladevorgangs festzustellen.
Ausprobierte Codes
Sie haben versucht, dies mit diesem Code zu überprüfen:
new WebDriverWait(firefoxDriver, pageLoadTimeout).until( webDriver -> ((JavascriptExecutor) webDriver).executeScript("return document.readyState").equals("complete"));
Aber wie Sie beobachtet haben, hat dieser Ansatz funktioniert Einschränkungen.
PageLoadStrategy
Während pageLoadStrategy auf „normal“ gesetzt werden kann, um sicherzustellen, dass „document.readyState“ gleich „vollständig“ ist, ist es nicht narrensicher. JavaScript- und Ajax-Aufrufe sind möglicherweise noch ausstehend und erfordern weitere Maßnahmen.
Unbegrenzte Wartezeiten
Ansätze wie das Warten auf „jQuery.active == 0“ oder die Verwendung von WebDriverWait mit titleContains () beinhalten unbegrenzte Wartezeiten.
Visible Element Wartet
Eine granulare Methode ist die Verwendung von WebDriverWait mit VisibilityOfElementLocated(). Dadurch wartet Ihr Programm gezielt auf die Sichtbarkeit des gewünschten Elements und ermöglicht so eine genauere Überprüfung, ob es vollständig geladen ist.
Zusätzliche Referenzen
Weitere Einblicke finden Sie unter diese Ressourcen:
Fazit
Obwohl es in Selenium keine generische Funktion zum Überprüfen des Abschlusses des Seitenladens gibt , indem die besprochenen Techniken verwendet werden, wie z. B. PageLoadStrategy, „jQuery.active == 0“, unbestimmte Wartezeiten und sichtbar Element wartet, können Sie eine effektive Auswertung des Seitenladefortschritts erreichen.
Das obige ist der detaillierte Inhalt vonWie kann ich den Abschluss des Ladens einer Webseite in Selenium zuverlässig überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!