Automatización con Python
Automatización usando Python y Selenium
Selenium es una herramienta poderosa para automatizar navegadores web. Es ampliamente utilizado para pruebas automatizadas de aplicaciones web. Con Selenium, puedes interactuar con los elementos de una página web, como formularios, botones y enlaces.
Funciona controlando el navegador mediante scripts que simulan las acciones del usuario.
Ejemplo básico:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# Inicializar el navegador
driver = webdriver.Chrome()
# Abrir una página web
driver.get("http://www.example.com")
# Encontrar un elemento y realizar una acción
search_box = driver.find_element_by_name("q")
search_box.send_keys("automatización con selenium")
search_box.send_keys(Keys.RETURN)
# Cerrar el navegador
driver.quit()
Automatización usando Python y PyAutoGUI
PyAutoGUI es una biblioteca de Python para automatizar la interacción con el mouse y el teclado. Es útil para automatizar tareas que no se pueden realizar con Selenium, como interactuar con aplicaciones de escritorio.
Funciona enviando comandos al sistema operativo para mover el mouse, hacer clic y escribir texto.
Ejemplo básico:
import pyautogui
# Mover el mouse a una posición específica
pyautogui.moveTo(100, 100, duration=1)
# Hacer clic en la posición actual del mouse
pyautogui.click()
# Escribir texto
pyautogui.write("automatización con pyautogui", interval=0.1)
# Tomar una captura de pantalla
pyautogui.screenshot("screenshot.png")
Automatización usando Python y Lackey
Lackey es una biblioteca de Python para la automatización basada en la visión por computadora. Permite encontrar y hacer clic en elementos de la pantalla basados en imágenes.
Es especialmente útil cuando los elementos de la interfaz no pueden ser identificados por otros medios.
Ejemplo básico:
from lackey import *
# Definir una imagen como referencia
image_path = "path/to/image.png"
# Esperar a que la imagen aparezca en la pantalla y hacer clic en ella
wait(image_path, 10)
click(image_path)
Page Object Model (POM)
El Page Object Model (POM) es un patrón de diseño para crear una capa de abstracción entre la prueba y los elementos de la página web. En POM, cada página web tiene una clase correspondiente que representa la página y sus elementos.
Esto hace que el código de prueba sea más legible y fácil de mantener, ya que los cambios en la interfaz de usuario sólo requieren modificaciones en las clases correspondientes.
Ejemplo básico de POM con Selenium:
class LoginPage:
def __init__(self, driver):
self.driver = driver
self.username_field = "username"
self.password_field = "password"
self.login_button = "login"
def enter_username(self, username):
self.driver.find_element_by_id(self.username_field).send_keys(username)
def enter_password(self, password):
self.driver.find_element_by_id(self.password_field).send_keys(password)
def click_login(self):
self.driver.find_element_by_id(self.login_button).click()
# Uso del POM en una prueba
driver = webdriver.Chrome()
driver.get("http://www.example.com/login")
login_page = LoginPage(driver)
login_page.enter_username("mi_usuario")
login_page.enter_password("mi_contraseña")
login_page.click_login()