Resumen del método de la barra de desplazamiento desplegable de la operación de selenio de Python

Resumen del método de la barra de desplazamiento desplegable de la operación de selenio de Python

En la automatización de la interfaz de usuario, a menudo se encuentra con el problema de que el elemento no se puede identificar y no se puede encontrar. Hay muchas razones, como no en el iframe, xpath o id está mal, etc., pero hay uno que no es visible en el elemento de página que se muestra actualmente El elemento sale después de mover la barra de caída.

Por ejemplo, la siguiente página web necesita arrastrar la barra desplegable para encontrar el elemento del cuadro de entrada de contraseña a través de selenio.

Hay varias formas de resolver este tipo de problema en Python: una breve introducción para quienes lo necesitan:

Método uno) Operación directa usando el script js, el método es el siguiente:

js = "var q = document.getElementById ('id'). scrollTop = 10000" 
driver.execute_script (js)

 O:

js = "var q = document.documentElement.scrollTop = 10000" 
driver.execute_script (js)

 

La identificación aquí es la identificación de la barra de desplazamiento, pero no hay un método xpath en js, por lo que este método no se aplica a las páginas web donde la barra de desplazamiento no tiene una identificación

Método dos) Use el script js para arrastrar al lugar designado

target = driver.find_element_by_id ("id_keypair") 
driver.execute_script ("argumentos [0] .scrollIntoView ();", target) # arrastrar a elementos visibles

Este método puede arrastrar la barra de desplazamiento a la posición del elemento que debe mostrarse. Este método es más versátil y puede usarse

Método tres) Trabaje de acuerdo con la visualización de la página, envíe la tecla de tabulación

En la página de este ejemplo, la contraseña es el cuadro de entrada. Durante la operación manual normal, puede usar la tecla de tabulación para cambiar al cuadro de contraseña, por lo que de acuerdo con esta idea, también puede enviar la tecla de pestaña para cambiar en Python para que el elemento se muestre

desde selenium.webdriver.common.keys import Keys 
driver.find_element_by_id ("id_login_method_0"). send_keys (Keys.TAB)

 

actualizar

Al usar el marco de trabajo de robotframe hace algún tiempo, hay una función muy útil Focus en selenium2library, que localizará automáticamente el elemento y estudiará el código fuente:

    def focus (self, locator): 
        "" "Establece el foco en el elemento identificado por` locator`. "" " 
        element = self._element_find (locator, True, True) 
        self._current_browser (). execute_script (" argumentos [0]. focus (); ", elemento)

Podemos ver en el código fuente que este método es consistente con el método 2) que escribimos en Python nosotros mismos , y la herramienta lo encapsula para nosotros.

17 artículos originales publicados · Me gusta1 · Visitas 819

Supongo que te gusta

Origin blog.csdn.net/weixin_45433031/article/details/105152745
Recomendado
Clasificación