Selenium - So warten Sie, bis die Seite vollständig geladen ist [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Warten Sie auf das Laden der Seite in Selen 45 answers

Ich versuche, einige Testfälle mit Java und Selenium WebDriver zu automatisieren. Ich habe folgendes Szenario:

Es gibt eine Seite mit dem Namen "Produkte". Wenn ich auf der Seite "Produkt" auf den Link "Details anzeigen" klicke, wird ein Popup (Modaldialog) mit den Details des Artikels angezeigt.Wenn ich im Popup auf die Schaltfläche "Schließen" klicke, wird das Popup geschlossen und die Seite wird automatisch aktualisiert (die Seite wird gerade neu geladen, der Inhalt bleibt unverändert).

Nach dem Schließen des Popups muss ich auf derselben Seite auf die Schaltfläche "Artikel hinzufügen" klicken. Wenn WebDriver jedoch versucht, die Schaltfläche "Element hinzufügen" zu finden, kann WebDriver das Element finden und darauf klicken, wenn die Internetgeschwindigkeit zu hoch ist.

Aber wenn das Internet langsam ist, findet WebDriver die Schaltfläche vor der Seitenaktualisierung, aber sobald der WebDriver auf die Schaltfläche klickt, wird die Seite aktualisiert undStaleElementReferenceException tritt ein

Selbst wenn unterschiedliche Wartezeiten verwendet werden, werden alle Wartebedingungen erfüllt (da der Inhalt der Seite vor und nach dem erneuten Laden identisch ist), auch bevor die Seite erneut geladen wird undStaleElementReferenceException tritt ein

Der Testfall funktioniert einwandfrei, wennThread.sleep(3000); wird vor dem Klicken auf die Schaltfläche "Artikel hinzufügen" verwendet. Gibt es eine andere Problemumgehung für dieses Problem?

Antworten auf die Frage(10)

Ihre Antwort auf die Frage