El módulo Python de Selenium está diseñado para realizar pruebas automatizadas con Python. ActionChains es una forma de automatizar interacciones de bajo nivel, como movimientos del mouse, acciones de botones del mouse, pulsaciones de teclas e interacciones del menú contextual. Esto es útil para realizar acciones más complejas como pasar el cursor por encima y arrastrar y soltar. Los métodos de string de acción son utilizados por secuencias de comandos avanzadas donde necesitamos arrastrar un elemento, hacer clic en un elemento. Este artículo gira en torno a cómo manipular DOM usando strings de acción en Selenium. Hemos cubierto todos los métodos con ejemplos en detalle.
ActionChains se implementan con la ayuda de un objeto de string de acción que almacena las acciones en una cola y cuando se llama a perform(), realiza las operaciones en cola.
¿Cómo crear un objeto de string de acción?
Para crear un objeto de la string de acción, importe la clase de string de acción de los documentos y pase el controlador como argumento clave. Después de esto, uno puede usar este objeto para realizar todas las operaciones de las strings de acción.
# import webdriver from selenium import webdriver # import Action chains from selenium.webdriver.common.action_chains import ActionChains # create webdriver object driver = webdriver.Firefox() # create action chain object action = ActionChains(driver)
¿Cómo usar strings de acción en Selenium?
Después de que uno haya creado un objeto de la string de acción, abra una página web y realice varios otros métodos utilizando la sintaxis y los ejemplos a continuación. Las strings de acción se pueden usar en un patrón de string como se muestra a continuación:
menu = driver.find_element_by_css_selector(".nav") hidden_submenu = driver.find_element_by_css_selector(".nav # submenu1") ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()
O las acciones pueden ponerse en cola una por una y luego ejecutarse:
menu = driver.find_element_by_css_selector(".nav") hidden_submenu = driver.find_element_by_css_selector(".nav # submenu1") actions = ActionChains(driver) actions.move_to_element(menu) actions.click(hidden_submenu) actions.perform()
Ejemplo de proyecto –
Intentemos implementar strings de acción usando https://www.geeksforgeeks.org/ y juguemos con varios métodos de Selenium Python.
# import webdriver from selenium import webdriver # import Action chains from selenium.webdriver.common.action_chains import ActionChains # create webdriver object driver = webdriver.Firefox() # get geeksforgeeks.org driver.get("https://www.geeksforgeeks.org/") # get element element = driver.find_element_by_link_text("Courses") # create action chain object action = ActionChains(driver) # click the item action.click(on_element = element) # perform the operation action.perform()
El código anterior, primero abre https://www.geeksforgeeks.org/ y luego hace clic en el botón de cursos en el encabezado, que luego redirige el navegador a https://practice.geeksforgeeks.org/ automáticamente.
Salida:
el primer controlador abre https://www.geeksforgeeks.org/,
luego redirige a https://practice.geeksforgeeks.org/
Métodos de string de acción en Selenium Python
Se puede realizar una gran cantidad de operaciones utilizando strings de acción, como hacer clic, hacer clic con el botón derecho, etc. Aquí hay una lista de métodos importantes que se usan en las strings de acción.
Método | Descripción |
---|---|
hacer clic | Hace clic en un elemento. |
hacer clic y mantener | Mantiene pulsado el botón izquierdo del ratón sobre un elemento. |
contexto_clic | Realiza un clic contextual (clic derecho) en un elemento. |
haga doble clic | Hace doble clic en un elemento. |
arrastrar y soltar | Mantiene presionado el botón izquierdo del mouse en el elemento de origen, luego se mueve al elemento de destino y suelta el botón del mouse. |
arrastrar y soltar por desplazamiento | Mantiene presionado el botón izquierdo del mouse en el elemento de origen, luego se mueve al desplazamiento de destino y suelta el botón del mouse. |
tecla_abajo | Envía solo una pulsación de tecla, sin soltarla. |
tecla Arriba | Libera una tecla modificadora. |
move_by_offset | Mover el mouse a un desplazamiento desde la posición actual del mouse. |
mover_a_elemento | Mover el ratón al centro de un elemento. |
move_to_element_with_offset | Mueva el mouse por un desplazamiento del elemento especificado, los desplazamientos son relativos a la esquina superior izquierda del elemento. |
llevar a cabo | Realiza todas las acciones almacenadas. |
pausa | Pausa todas las entradas por la duración especificada en segundos |
liberar | Soltar un botón del mouse sostenido en un elemento. |
restablecer_acciones | Borra acciones que ya están almacenadas localmente y en el extremo remoto |
enviar_claves | Envía claves al elemento enfocado actual. |
Publicación traducida automáticamente
Artículo escrito por NaveenArora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA