Cómo instalar las herramientas de Selenium en Ubuntu 18.04

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
  • Selenio WebDriver

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.

Firefox Instalación

Paso 1. Primero, hacemos clic en el enlace aquí para instalar el Complemento 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.

Primer arranque

Continuaremos este proceso mencionado anteriormente en los siguientes secció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:

                      
                        [email protected]:~$ 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:

                      
                        [email protected]:~$ 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.

Chrome

Instalar Selenium IDE en Chrome

La instalación de la extensión en Chrome es lo mismo que en Firefox. los Extensión de selenio para Chrome se puede encontrar allí (y aquí está el Selenio Firefox extensión ).

Paso 1: Haga clic en Agregar a Chrome botón.

Pantalla FirstChrome

Paso 2. Haz clic en Agregar extensión.

añadir Chrome

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

Primer arranque

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

Proyecto

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

Proyecto2

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

Registro

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.

Ventana de comandos de prueba

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.

Tronco

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.

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.CodePre.com/"  | 
    self.driver.get("https://www.CodePre.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.

                      
                        [email protected]:~$ 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:

                      
                        [email protected]:~$ 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

                      
                        [email protected]:~$ 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) …
[email protected]:~$ 
                      
                    

Paso 4. Si todo salió bien y no se produjeron errores, podemos verificar la versión de Java con el siguiente comando.

                      
                        [email protected]:~$ 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)
                      
                    

Instalar Selenium Grid

Paso 5. A continuación, descargaremos el archivo jar de lanzamiento de Selenium.

                      
                        [email protected]:~$ 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.

                      
                        [email protected]:~$ 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:

                      
                        [email protected]:~$ 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

Cuadrícula

Para leer más, puede revisar muchos de los otros Opciones de cuadrícula de selenio que 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.

                      
                        [email protected]:~$ 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

                      
                        [email protected]:~$ 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.

                      
                        [email protected]:~$ 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.

                      
                        [email protected]:~$ sudo mv chromedriver /usr/bin/chromedriver
[email protected]:~$ sudo chown root:root /usr/bin/chromedriver
[email protected]:~$ sudo chmod +x /usr/bin/chromedriver
[email protected]:~$ chromedriver --version
ChromeDriver 2.41.578700 (2f1ed5f9343c13f73144538f15c00b370eda6706)
                      
                    

Paso 5. A continuación, ejecutamos ChromeDriver a través del servidor Selenium usando este comando.

                      
                        [email protected]:~$ 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 una chat o 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.

Related Posts