Librería selenium python para automatización web

13/03/2001

La librería Selenium en Python es una herramienta poderosa y versátil para la automatización de pruebas web y tareas de raspado de datos. Su capacidad para controlar navegadores web desde código Python la convierte en una solución indispensable para desarrolladores y testers.

Temario

¿Qué es Selenium?

Selenium es un conjunto de herramientas para automatizar navegadores web. En esencia, Selenium permite que tu código Python interactúe con un navegador (como Chrome, Firefox, Edge, etc.), controlando sus acciones, como navegar a diferentes páginas, rellenar formularios, hacer clic en elementos, y mucho más. Esto es invaluable para automatizar tareas repetitivas, pruebas de software y extracción de información de sitios web.

SeleniumLibrary (para Robot Framework)

Si bien Selenium funciona directamente con Python, también existe SeleniumLibrary, una librería para Robot Framework que utiliza Selenium en segundo plano. Robot Framework es una herramienta de automatización de pruebas que proporciona una sintaxis más estructurada y legible, ideal para proyectos grandes y equipos de trabajo.

SeleniumLibrary se instala a través de pip: pip install --upgrade robotframework-seleniumlibrary. Recuerda que necesitarás instalar los drivers de los navegadores por separado.

Instalación de Selenium en Python

Instalar Selenium en Python es sencillo, utilizando el gestor de paquetes pip:

python -m pip install selenium

Para usar Selenium, necesitas los drivers de navegador específicos (ChromeDriver para Chrome, geckodriver para Firefox, etc.). Estos drivers permiten la comunicación entre Selenium y el navegador.

Instalación de Drivers de Navegador

La instalación de los drivers suele implicar descargar el archivo ejecutable correspondiente a tu sistema operativo y añadir la ruta donde se encuentra a la variable de entorno PATH. Las instrucciones para cada driver se encuentran en la página web oficial del proyecto.

Uso de Selenium en Python

Un ejemplo básico de como usar Selenium para abrir Google:

from selenium import webdriver# Inicializa el driver de Chromedriver = webdriver.Chrome()# Abre Googledriver.get("https://www.google.com")# Cierra el navegadordriver.quit()

Este código primero importa la librería webdriver, luego inicializa un objeto webdriverpara Chrome y finalmente abre la página de Google. Después de la tarea, se cierra el navegador usando driver.quit().

Localizadores de Elementos

Para interactuar con elementos específicos de una página web (botones, campos de texto, etc.), Selenium utiliza localizadores. Los localizadores son expresiones que identifican de manera única un elemento dentro del código HTML de la página. Algunos tipos de localizadores son:

  • ID: driver.find_element(By.ID, "elementId")
  • Nombre: driver.find_element(By.NAME, "elementName")
  • Clase CSS: driver.find_element(By.CLASS_NAME, "elementClass")
  • XPath: driver.find_element(By.XPATH, "/html/body/div[1]/a")
  • CSS Selector: driver.find_element(By.CSS_SELECTOR, "#elementId")

La elección del localizador depende de la estructura del HTML de la página web.

Acciones Comunes con Selenium

Además de abrir páginas web, Selenium permite realizar una variedad de acciones:

  • Rellenar formularios: element.send_keys("texto")
  • Hacer clic en elementos: element.click()
  • Obtener texto de un elemento: element.text
  • Esperar a que un elemento cargue: WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "elementId")))
  • Capturar pantallas: driver.save_screenshot("screenshot.png")

Manejo de Esperas

Es crucial el uso de esperas explícitas e implícitas en tus scripts Selenium. Las esperas implícitas le indican al driver que espere un tiempo determinado antes de lanzar una excepción si un elemento no se encuentra. Las esperas explícitas son más precisas, esperando hasta que se cumpla una condición específica antes de continuar.

Extendiendo SeleniumLibrary

SeleniumLibrary ofrece APIs públicas para la creación de plugins y extensiones. Esto permite agregar nuevas funcionalidades o modificar el comportamiento de las keywords existentes.

Consultas Habituales sobre Selenium Python

Pregunta Respuesta
¿Qué navegadores soporta Selenium? Chrome, Firefox, Edge, Safari, Opera, etc.
¿Necesito instalar drivers de navegador? Sí, uno para cada navegador que uses.
¿Cómo manejar esperas en Selenium? Usando esperas implícitas y explícitas (WebDriverWait).
¿Qué son los localizadores de elementos? Expresiones que identifican elementos en el HTML.
¿Cómo capturar una pantalla con Selenium? driver.save_screenshot("nombre.png")

Conclusión

La librería Selenium en Python es una herramienta fundamental para la automatización web. Su flexibilidad, amplia documentación y gran comunidad de usuarios la convierten en una opción ideal para una gran variedad de proyectos, desde pruebas automatizadas hasta la extracción de datos de sitios web. La comprensión de los conceptos básicos, como la instalación de los drivers, el uso de localizadores y el manejo de esperas, es clave para aprovechar al máximo su potencial.

Si quieres conocer otros artículos parecidos a Librería selenium python para automatización web puedes visitar la categoría Libros y Librerías.

Subir