Lo prometido es deuda y por ello vamos a continuar con el siguiente artículo sobre la serie sobre Selenium. En esta ocasión, vamos a realizar una prueba básica de un formulario usando Selenium WebDriver. En este ejemplo veremos cómo rellenar un formulario web básico (nombre de usuario y contraseña) y pulsar botón de ingresar en la web de Amazon.
La virtud de usar este framework para testing es la facilidad con la que se pueden implementar las pruebas y la multitud de opciones de las que disponemos.
Vamos al grano y cuando hablamos de programación la mejor manera es pasando a explicar directamente al código fuente necesario para implementar la prueba.
En primer lugar importamos las clases necesarias.
import java.util.concurrent.TimeUnit; // Importamos la clase de Selenium import org.openqa.selenium.*; import org.openqa.selenium.firefox.FirefoxDriver;
A continuación pasamos a implementar la clase Prueba Formulario. Directamente vamos al método main y creamos una instancia de FirefoxDriver (la prueba se hará en Firefox). Se ha comentado cada una de las sentencias en el código Java
public class PruebaFormulario{ public static void main(String[] args) { // Creamos una instancia de FirefoxDriver WebDriver driver = new FirefoxDriver(); // Definimos dos variables para almacenar el momento en que comienza y finaliza la prueba long time_start, time_end; String web = "http://www.amazon.es"; System.out.println("Entrando a: " + web); time_start = System.currentTimeMillis(); driver.get(web); System.out.println("Carga de: " + web + "finalizada"); //Maximizamos la ventana driver.manage().window().maximize(); //Pulsamos el botón para logarnos en la web driver.findElement(By.id("nav-link-yourAccount")).click(); System.out.println("Botón Identificarse pulsado"); //Buscamos el elemento para introducir el usuario WebElement element; element = driver.findElement(By.id("ap_email")); element.sendKeys("aaaa@gmail.com"); System.out.println("Email introducido"); //Buscamos el elemento para introducir la contraseña WebElement element2; element2 = driver.findElement(By.id("ap_password")); //Introducimos la contraseña element2.sendKeys("prueba"); System.out.println("Contraseña introducida"); //Pulsamos botón para logarnos driver.findElement(By.id("signInSubmit-input")).click(); System.out.println("Login completado en: " + web); time_end = System.currentTimeMillis(); double time_total= time_end - time_start; System.out.println("El tiempo tomado ha sido: "+ (time_total) +" ms"); System.out.println("El tiempo tomado ha sido: "+ (time_total/1000) +" s"); } }
Lo más reseñable de este primer caso de prueba es la sentencia:
findElement(By.id("xxx"))
Mediante la misma conseguimos localizar el elemento con id especificado, que previamente hemos obtenido mediante las opciones de desarrollador en cualquier explorador tal y como podemos ver en la siguiente imagen:
En este enlace, podemos ver más opciones para buscar elementos dentro de una web usando Selenium. Es importante puntualizar que siempre que podamos usaremos By.id ya que es el más eficiente de todos.
Como hemos visto con este ejemplo, es muy sencillo implementar la prueba de un formulario básico realizada con Selenium. ¿Qué os ha parecido? Si tenéis cualquier duda o comentario, no dudéis en escribir.
Aprovecho también para dejaros un enlace al primer artículo sobre Selenium.
¡Buen artículo Vicente! 🙂
Sólo añadir, que para aquellos que utilicéis Chrome, habría que usar el siguiente WebDriver, os pongo un ejemplo de como lo he implementado yo:
//My path: C:\Users\RaFa\Downloads\chromedriver_win32\chromedriver.exe
String exePath = «C:\\Users\\RaFa\\Downloads\\chromedriver_win32\\chromedriver.exe»;
System.setProperty(«webdriver.chrome.driver», exePath);
WebDriver driver = new ChromeDriver();
Aquí la documentación relacionada, en la que se explica con más detalle:
http://www.toolsqa.com/selenium-webdriver/running-tests-in-chrome-browser/
Excelente atribución, aún existimos mortales usando estas documentaciones 😀