Selenio - Webdriver

WebDriver es una herramienta para automatizar las pruebas de aplicaciones web. Se conoce popularmente como Selenium 2.0. WebDriver usa un marco subyacente diferente, mientras que Selenium RC usa JavaScript Selenium-Core incrustado en el navegador, que tiene algunas limitaciones. WebDriver interactúa directamente con el navegador sin ningún intermediario, a diferencia de Selenium RC que depende de un servidor. Se utiliza en el siguiente contexto:

  • Pruebas de varios navegadores que incluyen una funcionalidad mejorada para navegadores que no es compatible con Selenium RC (Selenium 1.0).

  • Manejo de múltiples marcos, múltiples ventanas del navegador, ventanas emergentes y alertas.

  • Navegación de página compleja.

  • Navegación de usuario avanzada, como arrastrar y soltar.

  • Elementos de IU basados ​​en AJAX.

Arquitectura

WebDriver se explica mejor con un diagrama de arquitectura simple como se muestra a continuación.

Selenium RC Vs WebDriver

Selenio RC Selenium WebDriver
La arquitectura de Selenium RC es complicada, ya que el servidor debe estar en funcionamiento antes de iniciar una prueba. La arquitectura de WebDriver es más simple que Selenium RC, ya que controla el navegador desde el nivel del sistema operativo.
El servidor Selenium actúa como intermediario entre el navegador y los comandos de Selenese. WebDriver interactúa directamente con el navegador y utiliza el motor del navegador para controlarlo.
La ejecución del script Selenium RC es más lenta, ya que usa un Javascript para interactuar con RC. WebDriver es más rápido, ya que interactúa directamente con el navegador.
Selenium RC no puede admitir la ejecución sin cabeza, ya que necesita un navegador real para trabajar. WebDriver puede admitir la ejecución sin cabeza.
Es una API simple y pequeña. API compleja y un poco grande en comparación con RC.
API menos orientada a objetos. API puramente orientada a objetos.
No se pueden probar aplicaciones móviles. Puede probar aplicaciones de iPhone / Android.

Scripting usando WebDriver

Entendamos cómo trabajar con WebDriver. Para demostración, usaríamoshttps://www.calculator.net/. Realizaremos una "Calculadora de porcentaje" que se encuentra debajo de "Calculadora matemática". Ya hemos descargado los JAR de WebDriver necesarios. Consulte el capítulo "Configuración ambiental" para obtener más detalles.

Step 1 - Ejecute "Eclipse" desde la carpeta Extracted Eclipse.

Step 2 - Seleccione el espacio de trabajo haciendo clic en el botón 'Examinar'.

Step 3 - Ahora cree un 'Proyecto nuevo' desde el menú 'Archivo'.

Step 4 - Ingrese el nombre del proyecto y haga clic en 'Siguiente'.

Step 5- Vaya a la pestaña Bibliotecas y seleccione todos los JAR que hemos descargado. Agregue una referencia a todos los JAR de la carpeta de la biblioteca Selenium WebDriver y también a selenium-java-2.42.2.jar y selenium-java-2.42.2-srcs.jar.

Step 6 - El paquete se crea como se muestra a continuación.

Step 7 - Ahora haga clic derecho en el paquete y seleccione 'Nuevo' >> 'Clase' para crear una 'clase'.

Step 8 - Ahora nombre la clase y conviértala en la función principal.

Step 9 - El esquema de la clase se muestra a continuación.

Step 10- Ahora es el momento de codificar. El siguiente guión es más fácil de entender, ya que tiene comentarios incrustados para explicar los pasos con claridad. Consulte el capítulo "Localizadores" para comprender cómo capturar las propiedades de los objetos.

import java.util.concurrent.TimeUnit;

import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;

public class webdriverdemo {
   public static void main(String[] args) {
   
      WebDriver driver = new FirefoxDriver();
      //Puts an Implicit wait, Will wait for 10 seconds before throwing exception
      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
      
      //Launch website
      driver.navigate().to("http://www.calculator.net/");
      
      //Maximize the browser
      driver.manage().window().maximize();
      
      // Click on Math Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[3]/a")).click();
      
      // Click on Percent Calculators
      driver.findElement(By.xpath(".//*[@id = 'menu']/div[4]/div[3]/a")).click();
      
      // Enter value 10 in the first number of the percent Calculator
      driver.findElement(By.id("cpar1")).sendKeys("10");
      
      // Enter value 50 in the second number of the percent Calculator
      driver.findElement(By.id("cpar2")).sendKeys("50");
      
      // Click Calculate Button
      driver.findElement(By.xpath(".//*[@id = 'content']/table/tbody/tr[2]/td/input[2]")).click();

      
      // Get the Result Text based on its xpath
      String result =
         driver.findElement(By.xpath(".//*[@id = 'content']/p[2]/font/b")).getText();

      
      // Print a Log In message to the screen
      System.out.println(" The Result is " + result);
      
      //Close the Browser.
      driver.close();
   }
}

Step 11 - La salida del script anterior se imprimirá en la consola.

Comandos más utilizados

La siguiente tabla enumera algunos de los comandos más utilizados en WebDriver junto con su sintaxis.

No Señor. Comando y descripción
1

driver.get("URL")

Para navegar a una aplicación.

2

element.sendKeys("inputtext")

Ingrese texto en un cuadro de entrada.

3

element.clear()

Borre el contenido del cuadro de entrada.

4

select.deselectAll()

Anule la selección de todas las OPCIONES del primer SELECCIONAR en la página.

5

select.selectByVisibleText("some text")

Seleccione la OPCIÓN con la entrada especificada por el usuario.

6

driver.switchTo().window("windowName")

Mueva el foco de una ventana a otra.

7

driver.switchTo().frame("frameName")

Oscile de un marco a otro.

8

driver.switchTo().alert()

Ayuda a manejar alertas.

9

driver.navigate().to("URL")

Navega hasta la URL.

10

driver.navigate().forward()

Para navegar hacia adelante.

11

driver.navigate().back()

Para navegar de regreso.

12

driver.close()

Cierra el navegador actual asociado con el controlador.

13

driver.quit()

Cierra el controlador y cierra todas las ventanas asociadas a ese controlador.

14

driver.refresh()

Actualiza la página actual.