¿Qué es Selenium y para qué sirve?
Selenium es un potente framework de código abierto diseñado para automatizar acciones en navegadores web. Esta librería permite a los desarrolladores controlar navegadores de forma programática, simulando acciones reales de un usuario: navegar entre páginas, rellenar formularios, hacer clic en elementos, trabajar con listas desplegables y muchas otras operaciones.
Selenium se utiliza ampliamente en diversas áreas del desarrollo y las pruebas. Sus principales usos incluyen la automatización de pruebas de interfaces de usuario, el web scraping de sitios dinámicos, la automatización de tareas repetitivas en el navegador y la verificación de funcionalidades en aplicaciones web.
Características clave y ventajas de Selenium
Soporte multiplataforma de navegadores
Selenium es totalmente compatible con todos los navegadores populares, incluyendo Google Chrome, Mozilla Firefox, Microsoft Edge, Safari y Opera. Esto significa que un mismo código puede funcionar en diferentes navegadores con cambios mínimos.
Simulación realista de acciones de usuario
El framework puede reproducir con precisión casi cualquier acción del usuario: clics con botón izquierdo y derecho, arrastrar y soltar elementos, desplazamiento de páginas, ingreso de texto con teclado, manejo de ventanas modales y mucho más.
Métodos flexibles para localizar elementos
Selenium ofrece múltiples formas de encontrar elementos en una página: por ID, clase, nombre de etiqueta, selectores CSS, expresiones XPath, texto de enlaces y otros atributos. Esto brinda la máxima flexibilidad al trabajar con diferentes tipos de páginas web.
Soporte para modo headless
La posibilidad de ejecutar el navegador en modo headless (sin interfaz gráfica) convierte a Selenium en la herramienta ideal para automatización en servidores, contenedores y pipelines de CI/CD.
Funcionalidades avanzadas
Selenium puede trabajar con múltiples pestañas y ventanas, manejar alertas de JavaScript, gestionar cookies y sesiones, configurar servidores proxy, tomar capturas de pantalla y guardar el código HTML de las páginas.
Instalación y configuración de Selenium
Instalación de la librería principal
Para empezar a trabajar con Selenium, primero debes instalar la librería principal usando pip:
pip install selenium
Descarga y configuración de los controladores del navegador
Cada navegador requiere su propio controlador. El más popular es ChromeDriver para el navegador Chrome. A partir de la versión 115 de Chrome, se recomienda usar Chrome for Testing, que puedes descargar desde el sitio oficial de Google.
Es importante asegurarse de que la versión del controlador coincida con la versión del navegador instalado. Para automatizar este proceso, puedes usar herramientas como webdriver-manager:
pip install webdriver-manager
Gestión automática de controladores
El enfoque moderno para gestionar controladores implica usar un gestor de controladores:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
Fundamentos de Selenium
Iniciar el navegador y operaciones básicas
Ejemplo básico para iniciar el navegador y navegar entre páginas:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Configurar opciones del navegador
options = Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
# Inicializar el controlador
driver = webdriver.Chrome(options=options)
# Navegar entre páginas
driver.get("https://example.com")
print(f"Título de la página: {driver.ti