La automatización web es una de las mejores formas en que las empresas pueden probar un producto en desarrollo, especialmente las funcionalidades de la aplicación, como hacer clic, desplazarse y otras acciones.
Esencialmente, la automatización web se trata de imitar la acción humana, ya que es crucial para garantizar que el software funcione en todos los tipos de dispositivos de usuarios.
En este artículo, aprenderemos cómo usar Selenium como una herramienta de automatización para probar un sitio web con Python y automatizar todo el proceso sin usar un mouse o teclado en el navegador. Selenium no funciona solo con Python, sino con muchos otros lenguajes de programación.
Selenium nos permite navegar o usar un navegador sin la participación humana y automatizar procesos a través de código, como escribir en una entrada de usuario e interactuar con el sitio web. Por ejemplo, es posible automatizar el envío de formularios con Selenium. Selenium hace todo por sí mismo sin un solo clic de un humano.
Antes de que Selenium pueda llevar a cabo cualquier acción a través del código, necesitamos los paquetes y las herramientas para poder ejecutar la automatización del navegador y hacerlo sin problemas.
En esta sección, instalamos el paquete Selenium y el archivo ejecutable WebDriver. Primero, verifique la versión del navegador Chrome para que sea equivalente a la misma versión del archivo exec de WebDriver.
Lo siguiente debe instalarse en nuestra máquina local:
El navegador Chrome. Descárgalo aquí
Descargue la última versión estable de ChromeDriver . En la página web de ChromeDriver, verifique para confirmar que la versión de Chrome coincida con la versión de ChromeDriver
Ahora, ejecuta este comando para instalar Selenium en tu terminal:
pip install selenium
Para comenzar, cree una nueva carpeta que contenga el archivo y los archivos ejecutables de ChromeDriver descargados. Selenium requiere que el controlador interactúe con el navegador elegido, que en este tutorial estamos usando el navegador Chrome.
Es esencial colocar ChromeDriver en el mismo directorio que el archivo de Python.
El directorio para el proyecto debería verse así:
Otra forma de usar ChromeDriver en este proyecto es encontrar la ubicación de la ruta del archivo y copiarlo, que debería verse así:
Usuarios de MacBook:
/Users/<nombre de usuario de la computadora>/Desktop/chromedriver
Usuarios de Windows:
C:\Usuarios\<nombre de usuario de la computadora\Escritorio\chromdriver
WebDriver es el puente que une el código de Selenium para que funcione con el navegador Chrome. El navegador Chrome proporciona el puente. Sin ella, la automatización no será posible.
A continuación, copiemos y peguemos el siguiente código en el
automation.py
expediente: # automation.py
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys chrome_driver_path = './chromedriver'
service = Service(chrome_drive_path) driver = webdriver.Chrome(service=service) url = "https://en.wikipedia.org/wiki/Main_Page"
driver.get(url) article_count = driver.find_element(By.CSS_SELECTOR, "#articlecount a" ) print (article_count.text) drive.close()
Lo siguiente ocurre en el fragmento de código anterior, ya que usaremos Selenium para navegar por Wikipedia:
selenium.webdriver
El módulo proporciona todas las implementaciones de WebDriver, y el objeto de servicio es para manejar el controlador del navegador. By
class se usa para ubicar elementos dentro del documento de una página web usando sus clases CSS, ids, etc. webdriver.Chrome()
con el argumento del servicio .get()
el método navegará a la página dada por la urlEn la página de Wikipedia, abra el elemento de inspección para acceder a los elementos que usaremos para obtener los detalles de la página para la automatización.
Ahora a la tarea de encontrar el número de artículos. WebDriver nos ofrece una forma de hacerlo apuntando al elemento usando el método find_element y usando el
By.CSS_SELECTOR
como primer parámetro con el nombre del selector, #articlecount a.
Antes de ejecutar el programa Python, el script tiene el método,
driver.close()
, que cierra la ventana del navegador después de ejecutar la prueba.Ejecute el programa con el comando:
python automation.py
El resultado de la terminal debería mostrar el recuento de artículos, que muestra la cifra exacta en la página web, 6.545.457 .
Por lo que hemos hecho hasta ahora, es evidente que Selenium navega por un sitio web sin usar o hacer clic con el mouse.
Ahora, simulemos una acción en la que el navegador reacciona a un clic en un enlace de la página.
Actualizar el
automation.py
con estas lineas de codigo: # automation.py # import modules contact_us = driver.find_element(By.LINK_TEXT, "Contact us" ) contact_us.click()
Con este fragmento de código, estamos encontrando el elemento del texto del enlace, "Contáctenos" con el
By.LINK_TEXT
. Después de ubicar los elementos, adjunte el contact_us
a una acción con .click()
método.Nuevamente ejecutamos el comando:
python automation.py
El comando anterior da el resultado de la página de contacto.
Hay tantos casos de uso con Selenium. La búsqueda en una página web se puede lograr con la automatización, que le brinda el resultado de una palabra de búsqueda.
Aún así, en el mismo archivo, automatización.py, actualice el archivo con este código:
# automation.py search = driver.find_element(By.NAME, "search" ) search.send_keys( "React" , Keys.ENTER)
El código anterior hace algo similar al anterior usando el
find_element
método con el atributo de nombre de entrada, búsqueda.También el
send_keys
simular presionando la tecla ENTER, buscando la palabra clave React .El resultado de la página debería verse así:
Este artículo es una descripción general de cómo usar Selenium en Python para automatizar la web, especialmente para desarrolladores profesionales que desean saber si hay errores en el código y cómo corregirlos.
Las posibilidades de usar Selenium con Python para la automatización web son infinitas. Algunos casos de uso incluyen completar un formulario en línea, solicitar trabajos de LinkedIn, jugar un juego de clicker, etc. ¿Conoces otros casos de uso para usar Selenium?
Comparta amablemente su caso de uso favorito en los comentarios a continuación.