Operaciones de elementos en Selenium

En Selenium, después de localizar un elemento, se pueden realizar diversas operaciones sobre él, como hacer clic, introducir texto, obtener atributos, etc.

A continuación se muestran las operaciones de elementos más comunes en Selenium y su descripción detallada.

Tipo de operaciónMétodoDescripciónEjemplo
Introducir textosend_keys("text")Introduce el texto especificado en un campo de entrada o área de texto.element.send_keys("testuser")
Hacer clic en un elementoclick()Hacer clic en un botón, enlace u otro elemento en el que se pueda hacer clic.element.click()
Limpiar el contenido del campo de entradaclear()Limpia el contenido de un campo de entrada o área de texto.element.clear()
Obtener el atributo de un elementoget_attribute("attribute_name")Obtiene el valor del atributo especificado del elemento (por ejemplo,value、href、classetc.).value = element.get_attribute("value")
Obtener el texto de un elementotextObtiene el contenido de texto visible de un elemento.print(element.text)
Operaciones con casillas de verificación / botones de opciónis_selected()yclick()Comprueba si una casilla de verificación o botón de opción está seleccionado y lo selecciona o deselecciona.if not checkbox.is_selected(): checkbox.click()
Operaciones con listas desplegablesSelectde la claseselect_by_index、select_by_value、select_by_visible_textSelecciona una opción de la lista desplegable mediante el índice, el valor o el texto visible.dropdown.select_by_visible_text("China")
Operaciones con el ratónActionChainsde la claseclick、double_click、context_click、drag_and_drop、move_to_elementEjecuta operaciones complejas de ratón, como hacer clic, doble clic, arrastrar y soltar, pasar el cursor, etc.actions.move_to_element(element).perform()
Operaciones con el tecladoKeysde la clasesend_keys(Keys.KEY_NAME)Simula operaciones de teclado, como presionar la tecla Enter, la tecla Tab, combinaciones de teclas, etc.element.send_keys(Keys.ENTER)
Carga de archivossend_keys("file_path")mediante<input type="file">el elemento para subir archivos.element.send_keys("/path/to/file.txt")
Ejecutar JavaScriptexecute_script("javascript_code")Ejecuta código JavaScript, utilizado para operaciones complejas o modificar el contenido de la página.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

1. Introducir texto (send_keys)

En las pruebas automatizadas, a menudo es necesario introducir texto en un campo de entrada; Selenium proporcionasend_keysel método para lograr esta funcionalidad.

Ejemplo

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService

# Establecer la ruta correcta del controlador
service = ChromeService(executable_path="./chromedriver-mac-arm64/chromedriver")
options = webdriver.ChromeOptions()
driver = webdriver.Chrome(service=service, options=options)
# Iniciar el navegador
driver = webdriver.Chrome()

# Abrir la página web
driver.get("https://example.com")

# Localizar el elemento del campo de entrada
input_element = driver.find_element_by_name("username")

# Introducir texto
input_element.send_keys("your_username")

# Cerrar el navegador
driver.quit()

En el código anterior, primero localizamos un elemento de campo de entrada y luego usamossend_keysel método para introducir el texto "your_username" en él.

2. Hacer clic en un elemento (click)

La operación de clic es una de las operaciones más comunes en las pruebas automatizadas. Selenium proporcionaclickel método para simular que el usuario hace clic en un elemento.

Ejemplo

# Localizar el elemento del botón
button_element = driver.find_element_by_id("submit-button")

# Hacer clic en el botón
button_element.click()

En este ejemplo, localizamos un elemento de botón y usamosclickel método para simular que el usuario hace clic en ese botón.

3. Limpiar el contenido del campo de entrada (clear)

A veces necesitamos limpiar el contenido existente en un campo de entrada y luego introducir contenido nuevo. Selenium proporcionaclearel método para lograr esta funcionalidad.

Ejemplo

# Localizar el elemento del campo de entrada
input_element = driver.find_element_by_name("username")

# Limpiar el contenido del campo de entrada
input_element.clear()

# Introducir texto nuevo
input_element.send_keys("new_username")

En este ejemplo, primero limpiamos el contenido del campo de entrada y luego introdujimos el texto nuevo "new_username".

4. Obtener el atributo de un elemento (get_attribute)

En las pruebas automatizadas, a veces es necesario obtener el valor de un atributo de un elemento. Selenium proporcionaget_attributeel método para obtener los atributos de un elemento.

Ejemplo

# Localizar el elemento
element = driver.find_element_by_id("element-id")

# Obtener el valor del atributo del elemento
attribute_value = element.get_attribute("class")

print(attribute_value)

En este ejemplo, obtuvimos elclassvalor de atributo de un elemento y lo imprimimos.

5. Obtener el texto de un elemento (text)

A veces necesitamos obtener el contenido de texto dentro de un elemento. Selenium proporcionatextla propiedad para obtener el texto de un elemento.

Ejemplo

# Localizar el elemento
element = driver.find_element_by_id("element-id")

# Obtener el contenido de texto del elemento
text_content = element.text

print(text_content)

En este ejemplo, obtuvimos el contenido de texto de un elemento y lo imprimimos.

6. Operaciones con casillas de verificación y botones de opción

Las casillas de verificación y los botones de opción son elementos comunes en los formularios web. Selenium proporcionaclickel método para operar estos elementos.

Operación de casilla de verificación

Ejemplo

# Localizar el elemento de la casilla de verificación
checkbox_element = driver.find_element_by_id("checkbox-id")

# Si la casilla de verificación no está seleccionada, hacer clic para seleccionarla
if not checkbox_element.is_selected():
    checkbox_element.click()

En este ejemplo, primero comprobamos si la casilla de verificación ya está seleccionada; si no lo está, hacemos clic para seleccionarla.

Operación de botón de opción

Ejemplo

# Localizar el elemento del botón de opción
radio_button_element = driver.find_element_by_id("radio-button-id")

# Si el botón de opción no está seleccionado, hacer clic para seleccionarlo
if not radio_button_element.is_selected():
    radio_button_element.click()

La operación del botón de opción es similar a la de la casilla de verificación: primero comprobamos si el botón de opción ya está seleccionado y, si no lo está, hacemos clic para seleccionarlo.

7. Operaciones con listas desplegables (clase Select)

Las listas desplegables son uno de los elementos comunes en los formularios web. Selenium proporcionaSelectla clase para operar convenientemente las listas desplegables.

Ejemplo

from selenium.webdriver.support.ui import Select

# Localizar el elemento de la lista desplegable
dropdown_element = driver.find_element_by_id("dropdown-id")

# Crear el objeto Select
select = Select(dropdown_element)

# Seleccionar la opción mediante el texto visible
select.select_by_visible_text("Option 1")

# Seleccionar la opción mediante el valor
select.select_by_value("1")

# Seleccionar la opción mediante el índice
select.select_by_index(0)

En este ejemplo, primero localizamos un elemento de lista desplegable y luego usamosSelectla clase para operarla. Podemos seleccionar una opción de la lista desplegable mediante el texto visible, el valor o el índice.

Resumen

Este artículo detalla las operaciones de elementos más comunes en Selenium, incluyendo introducir texto, hacer clic en elementos, limpiar el contenido de campos de entrada, obtener atributos y texto de elementos, operar casillas de verificación y botones de opción, y manejar listas desplegables. Dominar estas operaciones básicas es clave para realizar pruebas automatizadas. Esperamos que este artículo te ayude a comprender y utilizar mejor Selenium para pruebas automatizadas web.

Otras extensiones