El paquete de herramientas Selenium consta de:

  1. Selenium Core, el núcleo que contiene la funcionalidad básica (API),
  2. Selenium IDE, el entorno de desarrollo,
  3. Selenium WebDriver, una herramienta que puede automatizar cualquier acción que tenga lugar en un navegador web,
  4. Selenium Grid, una extensión de WebDriver para la ejecución de pruebas en paralelo.

WebDriver

Selenium WebDriver se opera escribiendo código en un lenguaje de programación, como Java, C #, .Net, JavaScript (Node), PHP, Ruby, Python o Perl, por tanto, se requiere de competencia en programación para crear un script de prueba para WebDriver.

Selenium es uno de los frameworks más usados por las siguientes razones:

  1. Puede ejecutar casos en diferentes navegadores,
  2. Soporta varios sistemas operativos,
  3. Soporta dispositivos móviles,
  4. Puede ejecutar casos mientras el navegador está minimizado,
  5. Puede ejecutar casos en paralelo.
Con WebDriver no podemos probar ninguna aplicación móvil o de escritorio, pero existe [ChromeDriver](https://sites.google.com/chromium.org/driver/home) que está disponible para Chrome de Android y Chrome en el escritorio.
:gem:

WebDriver no es apto para todos los casos o contenidos web. WebDriver no puede probar o registrar:

  1. Captchas,
  2. Descarga de archivos,
  3. Iniciar sesión en los servicios de terceros,
  4. Códigos de respuesta HTTP (tiene problemas para tratar con códigos de estado HTTP),
  5. Pruebas de rendimiento (no está diseñado para eso).

Instalar Selenium

Hay varios clientes y bibliotecas disponibles para usar Selenium WebDriver, denominados en su conjunto language bindings según el lenguaje que se vaya utilizar; nosotros usaremos Python, por tanto, instalaremos el language bindings para Python.

python3 -m pip install selenium

Selenium Manager

ChromeDriver es el software que permite a Selenium controlar el navegador Chrome.

Para cada versión de Chrome debemos instalar la versión correspondiente de ChromeDriver. Sin embargo, ahora es normal que el navegador (Chrome/Firefox/Edge) se actualice cada 4 a 6 semanas, por lo que mantener el controlador actualizado no es una tarea fácil; y a veces imposible, al no tener todavía un controlador disponible.

selenium....mmon....ceptions....ssionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 114....

Selenium Manager configurará los controladores del navegador para Chrome, Firefox y Edge si no están presentes en el archivo PATH

Deshabilitar el servicio de actualizaciones de Google

  1. Pulse Windows + R, escriba msconfig y ejecute el comando, pulsando Enter.
  2. En la pestaña de Servicios, desmarcamos Servicios de Google Update (gupdate) y Servicios de Google (gupdatem).
  3. Por último, pulsamos en Aplicar y Aceptar para guardar los cambios.
  4. Una vez reiniciemos nuestro PC los cambios surtirán efecto.

Instalar ChromeDriver

  • Descarga chromedriver
  • Mueve ChromeDriver a algún lugar sensato donde Python y Selenium puedan encontrarlo:
    • a C:\Windows,
    • o a la carpeta /usr/local/bin.
mv chromedriver /usr/local/bin
**Otras fuentes:** 
[www.selenium.dev](https://www.selenium.dev/documentation/getting_started/installing_browser_drivers/)
, [sites.google.com](https://sites.google.com/a/chromium.org/chromedriver/downloads)
...No module named 'selenium'

Pruebe con python3 -m pip install selenium

...No se puede iniciar el navegador Chrome

Debe ir a la carpeta donde tiene el chromeDriver y abrirlo. Después de este paso, vuelva a ejecutar sus scripts con normalidad.

Administrador de unidades web

Puede usar automáticamente el controlador de cromo correcto mediante el administrador de unidades web.

  1. Instale el administrador de unidades web: pip install webdriver-manager
  2. Luego use el controlador en python de la siguiente manera:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

Instalar otras librerias

python3 -m pip install numpy
python3 -m pip install By
python3 -m pip install requests

Programación

Se puede referenciar a objetos DOM: nombre, ID o con XPath.

Métodos

  1. driver“nombre-clase”_by_class_name("nombre-clase") Para tomar un solo primer elemento

by_id, by_name, by_xpath, by_link_text, by_partial_link_text, by_tag_name, by_class_name, by_css_selector

Para pruebas

  1. Se puede integrar con herramientas como TestNG y JUnit para gestionar casos de prueba y generar informes.
  2. Se puede integrar con Maven, Jenkins y Docker para lograr pruebas continuas.