paint-brush
Automatización web con Python y Seleniumpor@terieyenike
33,331 lecturas
33,331 lecturas

Automatización web con Python y Selenium

por Teri5m2022/09/10
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

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. 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 nos permite navegar o usar un navegador sin la participación humana y automatizar procesos 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.
featured image - Automatización web con Python y Selenium
Teri HackerNoon profile picture

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.

¿Para qué se utiliza el selenio?

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.

Empezando

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.

Instalación

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

Automatización de una página web

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:

  • Importe la función webdriver desde el módulo selenium
  • los
     selenium.webdriver
    El módulo proporciona todas las implementaciones de WebDriver, y el objeto de servicio es para manejar el controlador del navegador.
  • los
     By
    class se usa para ubicar elementos dentro del documento de una página web usando sus clases CSS, ids, etc.
  • La clase Keys simula las acciones de la pulsación de teclas del teclado como RETURN / Enter, F1, Alt, etc.
  • Asigne el archivo chromedriver exec a una variable
  • Llame a la ruta ejecutable del controlador al objeto de servicio
  • Lo siguiente es instanciar el navegador Chrome con el
     webdriver.Chrome()
    con el argumento del servicio
  • Defina la url de la página web para comprobar
  • Utilizando el
     .get()
    el método navegará a la página dada por la url

En 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 .

Simulación de una acción de clic

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.

Buscar una página web

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í:

Conclusión

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.

Aprende más