Ejemplo práctico con Selenium WebDriver en Java

Este ejemplo básico enseña cómo automatizar una prueba web paso a paso en Java, validando el título de una página y controlando el navegador.

Objetivo de la prueba

  1. Abrir la página de Mercury Tours
  2. Verificar que el título sea “Welcome: Mercury Tours”
  3. Imprimir el resultado de la comparación en consola
  4. Cerrar el navegador y terminar la sesión

Código completo en Java

package newproject;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
// Para usar Chrome, descomenta las siguientes líneas:
// import org.openqa.selenium.chrome.ChromeDriver;

public class PG1 {
    public static void main(String[] args) {
        // Definir el driver del navegador
        System.setProperty("webdriver.gecko.driver", "C:\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        // Para Chrome, usa:
        // System.setProperty("webdriver.chrome.driver", "C:\chromedriver.exe");
        // WebDriver driver = new ChromeDriver();

        String baseUrl = "https://demo.guru99.com/test/newtours/";
        String expectedTitle = "Welcome: Mercury Tours";
        String actualTitle = "";

        // Abrir navegador y cargar URL
        driver.get(baseUrl);

        // Obtener título de la página
        actualTitle = driver.getTitle();

        // Comparar título esperado con el actual
        if (actualTitle.contentEquals(expectedTitle)) {
            System.out.println("Test Passed!");
        } else {
            System.out.println("Test Failed");
        }

        // Cerrar navegador
        driver.close();
    }
}

Explicación paso a paso

1. Importar paquetes

Los paquetes de Selenium necesarios son:

  • org.openqa.selenium.* → contiene la clase WebDriver
  • org.openqa.selenium.firefox.FirefoxDriver → permite usar el navegador Firefox

2. Instanciar el navegador

WebDriver driver = new FirefoxDriver();

Esto lanza un nuevo navegador y lo controla mediante el driver definido.

3. Abrir una URL

driver.get(baseUrl);

Equivalente al comando open de Selenium IDE. Carga la página especificada.

4. Obtener y verificar el título

actualTitle = driver.getTitle();

Se compara con el valor esperado mediante un if-else tradicional.

5. Cerrar sesión del navegador

driver.close();

Cierra solo la ventana activa. Para cerrar todas las ventanas abiertas:

driver.quit();

Ejemplo adicional: localizar elementos en la página

Localiza un elemento en Facebook por su id y obtiene su etiqueta usando getTagName():

package newproject;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class PG2 {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver", "C:\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();

        driver.get("http://www.facebook.com");
        String tagName = driver.findElement(By.id("email")).getTagName();

        System.out.println(tagName); // Salida esperada: input
        driver.close();
        System.exit(0);
    }
}

Resumen rápido de métodos comunes en WebDriver

Tipo de AcciónMétodoDescripción
Abrir páginaget()Carga una URL nueva
Obtener títulogetTitle()Devuelve el título de la página actual
Obtener textogetText()Extrae el texto de un elemento
Ir atrás/adelantenavigate().back() / navigate().forward()Navegación entre páginas
Actualizarnavigate().refresh()Recarga la página actual
Cerrar navegadorclose()Cierra una sola ventana activa
Salir completamentequit()Cierra todas las ventanas abiertas

Localizadores más usados en Selenium WebDriver

LocatorEjemplo de uso
By.iddriver.findElement(By.id("email"));
By.namedriver.findElement(By.name("username"));
By.classNamedriver.findElement(By.className("btn-login"));
By.linkTextdriver.findElement(By.linkText("SIGN IN"));
By.partialLinkTextdriver.findElement(By.partialLinkText("REG"));
By.cssSelectordriver.findElement(By.cssSelector("input#email"));
By.xpathdriver.findElement(By.xpath("//input[@id='email']"));

Conclusión

Selenium WebDriver permite automatizar navegadores reales con interacciones humanas reales.

Aprender su lógica básica como get(), findElement(), y getTitle() que proporciona la base para construir pruebas más complejas, incluyendo esperas explícitas, manejo de frames y validaciones avanzadas.

CONSEJO FINAL: Practica estos ejemplos en Eclipse para afianzar el flujo completo de instalación, ejecución y depuración.