En nuestro artículo anterior sobre Selenium, mencionamos las herramientas que proporciona el software para probar aplicaciones web. En este artículo, revisaremos la instalación de estas herramientas y algunas pruebas básicas que se pueden ejecutar con las siguientes herramientas.
- IDE de selenio
- Rejilla de selenio
- Controlador web de selenio
Revisaremos cada una de las herramientas de Selenium en el orden que se indica a continuación. Entonces, comencemos instalando Selenium IDE. Después de esto, cubriremos el uso básico de cada una de las herramientas.
Requisitos
Especificaciones del servidor:
- Núcleos de CPU: 2
- RAM: 2GB
- OS: Ubuntu 18.04 instalación nueva con GUI
IDE de selenio
Requisitos:Dado que Selenium IDE es un Chrome/Firefox extensión del navegador, no tiene ninguna dependencia especial además de lo que necesita el propio navegador. Se puede usar en cualquier sistema operativo que admita la instalación de esos navegadores.
Instalación de Firefox
Paso 1. Primero, hacemos clic en el enlace aquí para instalar elComplemento del navegador Selenium. Una vez instalado, su navegador debería verse así.
Paso 2. Después de eso, haz clic en Agregar a Firefox y se verá la pantalla de abajo.
Paso 3. Haz clic en agregar. Si todo salió bien, la extensión debería estar instalada y lista para usar.
Paso 4. Tras el primer arranque de la extensión, aparece la siguiente pantalla.

Continuaremos este proceso mencionado anteriormente en los siguientessección.
Chrome Instalación de CLI
Chrome La instalación en Ubuntu 18.04 se puede realizar con los siguientes comandos a través de la línea de comandos.
Paso 1: obtenga el paquete para la última versión estable:
root@linux:~$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
--2019-12-28 21:07:45-- https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
Resolving dl.google.com (dl.google.com)... 216.58.211.14, 2a00:1450:400f:80d::200e
Connecting to dl.google.com (dl.google.com)|216.58.211.14|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 62181264 (59M) [application/x-debian-package]
Saving to: 'google-chrome-stable_current_amd64.deb'
google-chrome-stable_current_amd64.deb 100%[=============================================>] 59.30M 2.86MB/s in 21s
2019-12-28 21:08:07 (2.78 MB/s) - 'google-chrome-stable_current_amd64.deb' saved [62181264/62181264]
Paso 2: Instálelo con el siguiente comando:
root@linux:~$ sudo dpkg -i google-chrome-stable_current_amd64.deb
Selecting previously unselected package google-chrome-stable.
(Reading database ... 129294 files and directories currently installed.)
Preparing to unpack google-chrome-stable_current_amd64.deb ...
Unpacking google-chrome-stable (79.0.3945.88-1) ...
Setting up google-chrome-stable (79.0.3945.88-1) ...
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/x-www-browser (x-www-browser) in auto mode
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/gnome-www-browser (gnome-www-browser) in auto mode
update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/google-chrome (google-chrome) in auto mode
Processing triggers for gnome-menus (3.13.3-11ubuntu1.1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Si todo salió bien deberías ver Chrome en Mostrar aplicaciones.

Instalar Selenium IDE en Chrome
La instalación de la extensión en Chrome es lo mismo que en Firefox. losExtensión de selenio para Chromese puede encontrar allí (y aquí está elExtensión Selenio Firefox).
Paso 1: Haga clic en Agregar a Chrome botón.

Paso 2. Haz clic en Agregar extensión.

¡Eso debería ser! Si todo salió bien y no se mostraron errores, la extensión ahora debería estar disponible en Chrome.
Uso del IDE de selenio
Usaremos la extensión en Firefox para demostrar otras tareas.
Paso 1. Primero, necesitamos crear un proyecto. Haremos clic en el botón “Crear un nuevo proyecto” para comenzar.

Paso 2. Una vez que creamos un nuevo proyecto, necesitaremos darle un nombre. Usaremos SeleniumLW como el nombre de nuestro proyecto.

Paso 3. Después de asignar un nombre a nuestro proyecto, haga clic en Aceptar y se mostrará la página Proyecto.

En la esquina superior derecha, debería haber un botón REC. Cuando presionemos Grabar, aparecerá la siguiente pantalla. (Haremos pruebas en https://elsefix.com como prueba).

Paso 5. Una vez que presionemos Iniciar grabación, se abrirá el enlace en una nueva ventana, y cualquier acción realizada en el sitio se registrará y se enumerará como tal en la siguiente pantalla.

Paso 6. Debajo de esa pantalla está la ubicación en la que podemos ver que se extrae información diversa del comando que se ejecutó durante la prueba. Después de que dejemos de grabar, podemos ejecutar la prueba que replicará todas las tareas en el sitio que hicimos anteriormente. Luego registrará si se observaron problemas en la sección Registro de la extensión.

Paso 7. La siguiente pestaña se llama Referencia. En esta página, podemos ver una descripción de cada comando que se registró durante la prueba. Selenium IDE no solo se usa para pruebas visuales, sino que también se usa para crear prototipos de la prueba. Esto se debe a que tiene la capacidad de exportar esas pruebas a la aplicación WebDriver. Una vez guardadas las pruebas, podemos exportar las pruebas haciendo clic derecho y seleccionando la opción Exportar. La exportación se puede realizar por comando o por proyecto. Esto nos llevará a algunas de las otras opciones que podemos usar durante la opción Exportar.

Paso 8. A continuación, exportaremos la salida a Python (o cualquier idioma que le resulte más familiar). Una vez que se guarda la salida, la salida de prueba de Python en WebDriver se vería así:
# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class TestTestLW():
def setup_method(self, method):
self.driver = webdriver.Firefox()
self.vars = {}
def teardown_method(self, method):
self.driver.quit()
def test_testLW(self):
# Test name: TestLW
# Step # | name | target | value | comment
# 1 | open "https://www.elsefix.com/" |
self.driver.get("https://www.elsefix.com/")
# 2 | setWindowSize | 1853x920 | |
self.driver.set_window_size(1853, 920)
# 3 | click | css=.menu-item-has-children:nth-child(1) > a | |
self.driver.find_element(By.CSS_SELECTOR, ".menu-item-has-children:nth-child(1) > a").click()
# 4 | click | css=.sub-nav-wrap:nth-child(1) .menu-item:nth-child(5) span | |
self.driver.find_element(By.CSS_SELECTOR, ".sub-nav-wrap:nth-child(1) .menu-item:nth-child(5) span").click()
# 5 | runScript | window.scrollTo(0,191) | |
self.driver.execute_script("window.scrollTo(0,191)")
# 6 | runScript | window.scrollTo(0,399) | |
self.driver.execute_script("window.scrollTo(0,399)")
# 7 | runScript | window.scrollTo(0,741) | |
self.driver.execute_script("window.scrollTo(0,741)")
# 8 | runScript | window.scrollTo(0,1311) | |
self.driver.execute_script("window.scrollTo(0,1311)")
# 9 | runScript | window.scrollTo(0,1968) | |
self.driver.execute_script("window.scrollTo(0,1968)")
# 10 | click | css=#fl-accordion-5c2d26f14835f-tab-49 > .fl-accordion-button-label | |
self.driver.find_element(By.CSS_SELECTOR, "#fl-accordion-5c2d26f14835f-tab-4\9 > .fl-accordion-button-label").click()
Como se mencionó en nuestro artículo anterior, el IDE de Selenium es excelente en varias situaciones, pero carece de algunas opciones y configuraciones, por lo que se usa principalmente para la creación de prototipos.
Instalación de la red de selenio
Selenium Grid nos permite ejecutar pruebas en múltiples navegadores y entornos al mismo tiempo. Esto reduce drásticamente el tiempo necesario para las pruebas.
Instalar las dependencias
Paso 1. Primero, instalaremos software-properties-common para facilitar la adición de más repositorios.
root@linux:~$ sudo apt-get install software-properties-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
software-properties-common is already the newest version (0.96.24.32.11).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Paso 2. A continuación, actualicemos nuestros repositorios usando el comando:
root@linux:~$ sudo apt-get update
Hit:1 https://ppa.launchpad.net/webupd8team/java/ubuntu bionic InRelease
Hit:2 https://archive.ubuntu.com/ubuntu bionic InRelease
Hit:3 https://archive.ubuntu.com/ubuntu bionic-updates InRelease
Hit:4 https://archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:5 https://security.ubuntu.com/ubuntu bionic-security InRelease
Ign:6 https://dl.google.com/linux/chrome/deb stable InRelease
Hit:7 https://dl.google.com/linux/chrome/deb stable Release
Reading package lists... Done
Paso 3. A continuación, instalaremos Java JDK 8 usando el siguiente comando:
sudo instalación apt por defecto-jre
root@linux:~$ sudo apt install default-jre
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ca-certificates-java default-jre-headless fonts-dejavu-extra java-common libatk-wrapper-java libatk-wrapper-java-jni libgif7 openjdk-11-jre openjdk-11-jre-headless
Suggested packages:
fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei
The following NEW packages will be installed:
ca-certificates-java default-jre default-jre-headless fonts-dejavu-extra java-common libatk-wrapper-java libatk-wrapper-java-jni libgif7 openjdk-11-jre openjdk-11-jre-headless
0 upgraded, 10 newly installed, 0 to remove and 223 not upgraded.
Need to get 39.6 MB of archives.
After this operation, 179 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
…
…
…
…
Setting up default-jre (2:1.11-68ubuntu1~18.04.1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1.1) ...
Processing triggers for ca-certificates (20180409) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
done.
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for fontconfig (2.12.6-0ubuntu2) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) …
root@linux:~$
Paso 4. Si todo salió bien y no se produjeron errores, podemos verificar la versión de Java con el siguiente comando.
root@linux:~$ java -version
openjdk version "11.0.5" 2019-10-15
OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.118.04)
OpenJDK 64-Bit Server VM (build 11.0.5+10-post-Ubuntu-0ubuntu1.118.04, mixed mode, sharing)
Rejilla de selenio instalable
Paso 5. A continuación, descargaremos el archivo jar de lanzamiento de Selenium.
root@linux:~$ wget https://selenium-release.storage.googleapis.com/3.10/selenium-server-standalone-3.10.0.jar
--2019-12-28 22:51:56-- https://selenium-release.storage.googleapis.com/3.10/selenium-server-standalone-3.10.0.jar
Resolving selenium-release.storage.googleapis.com (selenium-release.storage.googleapis.com)... 172.217.22.176, 2a00:1450:400f:80b::2010
Connecting to selenium-release.storage.googleapis.com (selenium-release.storage.googleapis.com)|172.217.22.176|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 23427664 (22M) [application/java-archive]
Saving to: 'selenium-server-standalone-3.10.0.jar'
selenium-server-standalone-3.10.0.jar 100%[===========================================>] 22.34M 3.94MB/s in 5.5s
2019-12-28 22:52:02 (4.03 MB/s) - 'selenium-server-standalone-3.10.0.jar' saved [23427664/23427664]
Iniciar Selenium Grid
Paso 6. Ahora podemos iniciar Selenium usando el comando java.
root@linux:~$ java -jar selenium-server-standalone-3.10.0.jar -role hub
22:54:44.323 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.10.0', revision: '176b4a9'
22:54:44.377 INFO [GridLauncherV3$2.launch] - Launching Selenium Grid hub on port 4444
2019-12-28 22:54:45.881:INFO::main: Logging initialized @2350ms to org.seleniumhq.jetty9.util.log.StdErrLog
22:54:46.200 INFO [Hub.start] - Selenium Grid hub is up and running
22:54:46.204 INFO [Hub.start] - Nodes should register to https://10.0.2.15:4444/grid/register/
22:54:46.205 INFO [Hub.start] - Clients should connect to https://10.0.2.15:4444/wd/hub
Paso 7. Ahora que hemos iniciado el concentrador, podemos configurar los nodos en cada una de sus respectivas máquinas. Para lograr esto, crearemos un archivo llamado config.json con la siguiente configuración.
{
"capabilities":
[
{
"browserName": "firefox",
"marionette": true,
"maxInstances": 5,
"seleniumProtocol": "WebDriver",
"version": "58.0.2"
}
],
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 5,
"port": 5555,
"register": true,
"registerCycle": 5000,
"hub": "https://10.0.2.15:4444",
"nodeStatusCheckTimeout": 5000,
"nodePolling": 5000,
"role": "node",
"unregisterIfStillDownAfter": 60000,
"downPollingLimit": 2,
"debug": false,
"servlets" : [],
"withoutServlets": [],
"custom": {}
}
Paso 8. Ahora podemos iniciar los nodos escribiendo el siguiente comando:
root@linux:~$ java -jar selenium-server-standalone-3.10.0.jar -role node -nodeConfig config.json
23:05:21.922 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.10.0', revision: '176b4a9'
23:05:21.935 INFO [GridLauncherV3$3.launch] - Launching a Selenium Grid node on port 5555
2019-12-28 23:05:22.387:INFO::main: Logging initialized @1264ms to org.seleniumhq.jetty9.util.log.StdErrLog
23:05:22.728 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 5555
23:05:22.729 INFO [GridLauncherV3$3.launch] - Selenium Grid node is up and ready to register to the hub
23:05:22.747 INFO [SelfRegisteringRemote$1.run] - Starting auto registration thread. Will try to register every 5000 ms.
23:05:22.767 INFO [SelfRegisteringRemote.registerToHub] - Registering the node to the hub: https://10.0.2.15:4444/grid/register
23:05:23.853 INFO [SelfRegisteringRemote.registerToHub] - Updating the node configuration from the hub
23:05:24.012 INFO [SelfRegisteringRemote.registerToHub] - The node is registered to the hub and ready to use
Como hemos configurado tanto el concentrador como los nodos, deberíamos poder verlos a través del siguiente enlace: https://10.0.2.15:4444/grid/console

Para leer más, puede revisar muchos de los otrosOpciones de cuadrícula de selenioque se puede configurar.
Instalación de Selenium WebDriver (ChromeDriver)
Paso 1. Dado que ya hemos instalado el marco independiente del servidor de selenio, no hay necesidad de repetir esos pasos nuevamente. Simplemente necesitamos instalar un nuevo controlador para Chrome. Primero, necesitamos instalar algunas dependencias.
root@linux:~$ sudo apt-get install -y unzip xvfb libxi6 libgconf-2-4
Reading package lists... Done
Building dependency tree
Reading state information... Done
libxi6 is already the newest version (2:1.7.9-1).
unzip is already the newest version (6.0-21ubuntu1).
The following additional packages will be installed:
gconf-service gconf-service-backend gconf2-common
The following NEW packages will be installed:
gconf-service gconf-service-backend gconf2-common libgconf-2-4 xvfb
0 upgraded, 5 newly installed, 0 to remove and 223 not upgraded.
Need to get 1,628 kB of archives.
After this operation, 10.3 MB of additional disk space will be used.
Get:1 https://archive.ubuntu.com/ubuntu bionic/universe amd64 gconf2-common all 3.2.6-4ubuntu1 [700 kB]
Get:2 https://archive.ubuntu.com/ubuntu bionic/universe amd64 libgconf-2-4 amd64 3.2.6-4ubuntu1 [84.8 kB]
Get:3 https://archive.ubuntu.com/ubuntu bionic/universe amd64 gconf-service-backend amd64 3.2.6-4ubuntu1 [58.1 kB]
Get:4 https://archive.ubuntu.com/ubuntu bionic/universe amd64 gconf-service amd64 3.2.6-4ubuntu1 [2,036 B]
Get:5 https://archive.ubuntu.com/ubuntu bionic-updates/universe amd64 xvfb amd64 2:1.19.6-1ubuntu4.3 [783 kB]
Fetched 1,628 kB in 2s (981 kB/s)
Selecting previously unselected package gconf2-common.
(Reading database ... 129820 files and directories currently installed.)
Preparing to unpack .../gconf2-common_3.2.6-4ubuntu1_all.deb ...
Unpacking gconf2-common (3.2.6-4ubuntu1) ...
Selecting previously unselected package libgconf-2-4:amd64.
Preparing to unpack .../libgconf-2-4_3.2.6-4ubuntu1_amd64.deb ...
Unpacking libgconf-2-4:amd64 (3.2.6-4ubuntu1) ...
Selecting previously unselected package gconf-service-backend.
Preparing to unpack .../gconf-service-backend_3.2.6-4ubuntu1_amd64.deb ...
Unpacking gconf-service-backend (3.2.6-4ubuntu1) ...
Selecting previously unselected package gconf-service.
Preparing to unpack .../gconf-service_3.2.6-4ubuntu1_amd64.deb ...
Unpacking gconf-service (3.2.6-4ubuntu1) ...
Selecting previously unselected package xvfb.
Preparing to unpack .../xvfb_2%3a1.19.6-1ubuntu4.3_amd64.deb ...
Unpacking xvfb (2:1.19.6-1ubuntu4.3) ...
Setting up gconf2-common (3.2.6-4ubuntu1) ...
Creating config file /etc/gconf/2/path with new version
Setting up xvfb (2:1.19.6-1ubuntu4.3) ...
Setting up libgconf-2-4:amd64 (3.2.6-4ubuntu1) ...
Setting up gconf-service-backend (3.2.6-4ubuntu1) ...
Setting up gconf-service (3.2.6-4ubuntu1) ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Paso 2. Descarga ChromeDriver
root@linux:~$ wget https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip
--2019-12-28 23:24:32-- https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip
Resolving chromedriver.storage.googleapis.com (chromedriver.storage.googleapis.com)... 216.58.211.144, 2a00:1450:400f:80c::2010
Connecting to chromedriver.storage.googleapis.com (chromedriver.storage.googleapis.com)|216.58.211.144|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 3944714 (3.8M) [application/zip]
Saving to: 'chromedriver_linux64.zip'
chromedriver_linux64.zip 100%[===========================================>] 3.76M 3.69MB/s in 1.0s
2019-12-28 23:24:34 (3.69 MB/s) - 'chromedriver_linux64.zip' saved [3944714/3944714]
Paso 3. A continuación, descomprimimos el archivo ChromeDriver descargado.
root@linux:~$ unzip chromedriver_linux64.zip
Archive: chromedriver_linux64.zip
inflating: chromedriver
Paso 4. Ejecutaremos los siguientes comandos en sucesión para preparar ChromeDriver para su uso. Muevamos el archivo chromedriver descomprimido a la carpeta /usr/bin/. Luego, nos aseguramos de que el usuario root sea el propietario. A continuación, usamos el comando chmod para agregar el indicador de permisos de ejecución y, por último, verificamos la versión.
root@linux:~$ sudo mv chromedriver /usr/bin/chromedriver
root@linux:~$ sudo chown root:root /usr/bin/chromedriver
root@linux:~$ sudo chmod +x /usr/bin/chromedriver
root@linux:~$ chromedriver --version
ChromeDriver 2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706)
Paso 5. A continuación, ejecutamos ChromeDriver a través del servidor Selenium usando este comando.
root@linux:~$ xvfb-run java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone-3.10.0.jar
23:32:09.057 INFO [GridLauncherV3.launch] - Selenium build info: version: '3.10.0', revision: '176b4a9'
23:32:09.062 INFO [GridLauncherV3$1.launch] - Launching a standalone Selenium Server on port 4444
2019-12-28 23:32:10.051:INFO::main: Logging initialized @1951ms to org.seleniumhq.jetty9.util.log.StdErrLog
23:32:10.687 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 4444
Básicamente, WebDriver es solo la referencia para el navegador web, por lo que mostramos cómo instalar Selenium con ChromeDriver y también con FirefoxDrive en nuestra configuración inicial de la cuadrícula.
Selenio RC
Selenium Remote Control (RC) ha quedado obsoleto en favor de Selenium WebDriver. En la mayoría de los casos, los evaluadores utilizan principalmente Selenium Grid y WebDriver ahora para obtener resultados más rápidos. Como tal, no cubriremos esta parte de Selenium en este tutorial.
En conclusión
Selenium es un conjunto sólido de herramientas de prueba combinadas en una sola suite. Los probadores que lo han usado son en gran medida más productivos que ejecutar pruebas manualmente en una amplia gama de entornos. Además, Selenium es extremadamente útil si se prueba una gran cantidad de aplicaciones web en diferentes navegadores dentro de múltiples sistemas.
¿Te gusta lo que ves?
Llámanos al 800.580.4985 o abre unacharlaro tiquete con nosotros para hablar con uno de nuestros asesores expertos en soluciones o alojamiento experimentado para aprender cómo puede aprovechar este conocimiento tecnológico hoy.