Wenn wir Selen verwenden, um die Anmeldung zu simulieren, können wir nach dem Erhalten des Anmeldetastelements direkt die Click () -Methode aufrufen, um den Anmeldungssprung zu erreichen, und der Webdriver zeigt zu diesem Zeitpunkt auch auf
Dies ist in Ordnung für die aktuelle Seite, aber es ist zu beachten, dass Sie, da die Ladegeschwindigkeit der Seite im Allgemeinen niedriger ist als die Laufgeschwindigkeit, bevor Sie die Elemente der Seite nach dem Anmeldung erhalten, die Util -Methode von WebDriverwait verwenden oder Thread direkt verwenden können.
Der Hauptpunkt des Blogs ist jedoch, dass wir, wenn wir die neue Seite eingeben, indem wir auf den normalen Hyperlink klicken, das neue Seitenelement über die obige Methode nicht erhalten, da der Webdriver zu diesem Zeitpunkt immer noch auf die vorherige Seite hinweist.
Lösung: Holen Sie sich zunächst alle Griffe des Fensters und dann durch diese Handlungssammlung durch, bis sich der Griff existiert, vom aktuellen Fenstergriff (aktuelles Handwerk) und übertragen Sie den vorherigen Webdriver auf die Seite, auf die der neue Handle hingewiesen wird.
Der Code ist wie folgt:
String currentWindow = driver.getWindowHandle (); // Holen Sie sich das Handle des aktuellen Fensters Set <String> Handles = Driver.getWindowHandles (); // Holen Sie sich die Griffe aller Windows -Iterator <string> iT = griffs.iterator (); Webdriver NewDriver = NULL; while (it.hasnext ()) {String handle = it.next (); if (! Handle.equals (currentWindow)) {driver = driver.switchTo (). Fenster (Handle); // Wechseln Sie in die Fensterpause, auf die der neue Griff zeigt; }}Die Lösung für den Versäumnis, neue Seitenelemente basierend auf Selen zu erhalten, ist der gesamte Inhalt, der vom Editor geteilt wird. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.