Cuando usamos selenio para simular el inicio de sesión, después de obtener el elemento del botón de inicio de sesión, podemos llamar directamente a su método Click () para lograr el salto de inicio de sesión, y el WebDriver en este momento también señala
Esto está bien para la página actual, pero debe tenerse en cuenta que debido a que la velocidad de carga de la página es generalmente más baja que la velocidad de ejecución del programa, antes de obtener los elementos de la página después de iniciar sesión, puede usar el método Util de WebDriverWait, o puede usar directamente Thread.sleep () para dejar que el programa duerma por un tiempo (no recomendado).
Pero el punto principal del blog es que si ingresamos a la nueva página haciendo clic en el hipervínculo normal, entonces no podemos obtener el nuevo elemento de página a través del método anterior, porque el WebDriver en este momento todavía apunta a la página anterior.
Solución: Primero, obtenga todas las manijas de la ventana y luego itera a través de esta colección de mango hasta que exista el mango sea diferente del identificador de la ventana actual (CurrentHandle), y transfiera el webdriver anterior a la página señalada por el nuevo mango.
El código es el siguiente:
String CurrentWindow = Driver.getWindowHandle (); // Obtenga el mango de la ventana actual establecida <String> Handles = Driver.getWindowHandles (); // Obtenga los mangos de todos los Windows Iterator <String> it = Handles.Iterator (); Webdriver newdriver = null; while (it.hasnext ()) {string handle = it.next (); if (! Handle.equals (CurrentWindow)) {Driver = Driver.switchto (). Ventana (Handle); // Cambiar a la ruptura de la ventana apuntada por el nuevo mango; }}La solución a la falla de obtener nuevos elementos de página basados en Selenium es todo el contenido compartido por el editor. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.