Pruebas de navegador sin cabeza de selenio: HTMLUnitDriver & PhantomJS

El controlador web de Selenium es una herramienta de automatización web que le permite ejecutar las pruebas en diferentes navegadores. Estos navegadores pueden ser Internet Explorer, Firefox o Chrome. Para utilizar un navegador en particular con Selenium, necesita el controlador correspondiente.

En la ejecución de la prueba, Selenium inicia el navegador correspondiente llamado en el script y ejecuta los pasos de la prueba. Puede ver el navegador y la ejecución de la prueba en acción.

¿Qué es el navegador sin cabeza?

Un navegador sin cabeza es un navegador web sin una interfaz gráfica de usuario . Este programa se comportará como un navegador pero no mostrará ninguna GUI.

Algunos de los ejemplos de controladores sin cabeza incluyen

  • HtmlUnit
  • Fantasma
  • PhantomJS
  • ZombieJS
  • Watir-webdriver

En este tutorial nos centraremos en HtmlUnit y PhatomJS

HTMLUnitDriver

HTML UnitDriver es el navegador sin cabeza de implementación más ligero y rápido de WebDriver. Está basado en HtmlUnit. Se lo conoce como Headless Browser Driver . Es lo mismo que el controlador de Chrome, IE o FireFox, pero no tiene GUI, por lo que no se puede ver la ejecución de la prueba en la pantalla.

Características del controlador de la unidad HTML

  • Soporte para los protocolos HTTPS y HTTP
  • Soporte para respuestas HTML (hacer clic en enlaces, enviar formularios, recorrer el modelo DOM del documento HTML, etc.)
  • Soporte para cookies
  • Soporte de servidor proxy
  • Soporte para autenticación básica y NTLM
  • Excelente soporte de JavaScript
  • Soporte para los métodos de envío GET y POST
  • Posibilidad de personalizar los encabezados de solicitud que se envían al servidor
  • Capacidad para determinar si las respuestas fallidas del servidor deben generar excepciones o deben devolverse como páginas del tipo apropiado

Pasos para usar el controlador HTMLUnit con Selenium

Paso 1) En Eclipse, copie el siguiente código. Agregue los archivos de la biblioteca de selenio estándar al proyecto. No se requieren archivos jar adicionales.

paquete htmldriver;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.htmlunit.HtmlUnitDriver;public class htmlUnitYest {public static void main (String [] args) {// Creando una nueva instancia del controlador de unidad HTMLControlador WebDriver = new HtmlUnitDriver ();// Navegar a Googledriver.get ("http://www.google.com");// Localiza el cuadro de búsqueda usando su nombreElemento WebElement = driver.findElement (By.name ("q"));// Ingresa una consulta de búsquedaelement.sendKeys ("Guru99");// Envíe la consulta. Webdriver busca el formulario utilizando el elemento de entrada de texto automáticamente// No es necesario ubicar / encontrar el botón de enviarelement.submit ();// Este código imprimirá el título de la páginaSistema. out .println ("El título de la página es: + driver.getTitle ());driver.quit ();}}

Paso 2) Ejecute el código. Observará que no se inicia ningún navegador y los resultados se muestran en la consola.

Beneficios del controlador de unidad Html:

  • Dado que no utiliza ninguna GUI para probar, sus pruebas se ejecutarán en segundo plano sin ninguna interrupción visual
  • En comparación con todas las demás instancias, la ejecución es más rápida
  • Para ejecutar sus pruebas a través del controlador HtmlUnit, también puede seleccionar otras versiones del navegador
  • Es una plataforma independiente y más fácil de ejecutar varias pruebas al mismo tiempo. Ideal para pruebas de carga.

Limitaciones:

  • No puede emular el comportamiento de JavaScript de otros navegadores.

PhantomJS

PhantomJS es un navegador sin cabeza con API JavaScript. Es una solución óptima para pruebas de sitios web sin cabeza, accede y manipula páginas web y viene con la API DOM estándar.

Para usar PhantomJS con Seleniun, uno tiene que usar GhostDriver. GhostDriver es una implementación del protocolo Webdriver Wire en JS simple para PhantomJS.

La última versión de PhatomJS ha integrado GhostDriver y no es necesario instalarlo por separado.

Así es como funciona el sistema:

Pasos para ejecutar Selenium con PhatomJS

Paso 1) Necesita Eclipse con Selenium instalado

Paso 2) Descarga PhantomJS aquí

Paso 3) Extraiga la carpeta descargada a Archivos de programa

Paso 4) Descargue el controlador PhantomJS desde aquí. Agrega el frasco a tu proyecto

Paso 5) Pegue el siguiente código en eclipse

paquete htmldriver;import java.io.File;import org.openqa.selenium.By;importar org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;importar org.openqa.selenium.phantomjs.PhantomJSDriver;fantasma de clase pública {public static void main (String [] args) {Archivo archivo = nuevo archivo ("C: / Archivos de programa / phantomjs-2.0.0-windows / bin / phantomjs.exe");System.setProperty ("phantomjs.binary.path", file.getAbsolutePath ());Controlador WebDriver = nuevo PhantomJSDriver ();driver.get ("http://www.google.com");Elemento WebElement = driver.findElement (By.name ("q"));element.sendKeys ("Guru99");element.submit ();System.out.println ("El título de la página es: + driver.getTitle ());driver.quit ();}}

Paso 6) Ejecute el código. Observará que la salida se muestra en la consola y no se inicia ningún navegador.

NOTA : En la primera ejecución, según su configuración, es posible que reciba una advertencia de seguridad de Windows para permitir la ejecución de PhantomJS. Haga clic en Permitir acceso.

Muchas organizaciones usan Phantom.JS para varios propósitos, por ejemplo,

  • Prueba sin cabeza
  • La captura de pantalla
  • Automatización de página
  • Monitoreo de red
  • Para renderizar capturas de pantalla del panel para sus usuarios
  • Para ejecutar pruebas unitarias en la línea de comando
  • Para generar manuales de empleados de HTML a PDF
  • Combinado con QUnit para la suite de pruebas

Resumen

Para probar la aplicación rápidamente en varios navegadores y sin ninguna interrupción visual, se utiliza la prueba del navegador sin cabeza. Debido a su velocidad, precisión y características de fácil acceso, el controlador de unidad HTML y PhantomJS están ganando popularidad para las pruebas de navegadores sin cabeza. Siguiendo unos sencillos pasos, conocerá la facilidad con la que estas herramientas se pueden integrar con otras herramientas y pueden ejecutar el código de prueba.

Articulos interesantes...