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
- Abrir la página de Mercury Tours
- Verificar que el título sea “Welcome: Mercury Tours”
- Imprimir el resultado de la comparación en consola
- 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 WebDriverorg.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ón | Método | Descripción |
|---|---|---|
| Abrir página | get() | Carga una URL nueva |
| Obtener título | getTitle() | Devuelve el título de la página actual |
| Obtener texto | getText() | Extrae el texto de un elemento |
| Ir atrás/adelante | navigate().back() / navigate().forward() | Navegación entre páginas |
| Actualizar | navigate().refresh() | Recarga la página actual |
| Cerrar navegador | close() | Cierra una sola ventana activa |
| Salir completamente | quit() | Cierra todas las ventanas abiertas |
Localizadores más usados en Selenium WebDriver
| Locator | Ejemplo de uso |
|---|---|
By.id | driver.findElement(By.id("email")); |
By.name | driver.findElement(By.name("username")); |
By.className | driver.findElement(By.className("btn-login")); |
By.linkText | driver.findElement(By.linkText("SIGN IN")); |
By.partialLinkText | driver.findElement(By.partialLinkText("REG")); |
By.cssSelector | driver.findElement(By.cssSelector("input#email")); |
By.xpath | driver.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.
