Cómo seleccionar elementos web con Selenium en Java: 6 métodos esenciales

Selenium es la herramienta más usada para automatizar pruebas en aplicaciones web. Para interactuar con cualquier elemento — un botón, un campo de texto, un enlace — primero tienes que saber cómo encontrarlo en el DOM.

En esta guía aprenderás a seleccionar elementos web con Selenium en Java usando los 6 localizadores principales: ID, Name, XPath, CSS Selector, LinkText y ClassName. Para cada uno verás el código Java y un ejemplo real de cuándo usarlo.

Tabla comparativa de localizadores en Selenium Java

LocalizadorSintaxis en JavaCuándo usarloVelocidad
IDBy.id("valor")Cuando el elemento tiene un ID únicoMuy rápida
NameBy.name("valor")Para campos de formulario con atributo nameRápida
CSS SelectorBy.cssSelector("selector")Cuando necesitas seleccionar por clase o atributoRápida
XPathBy.xpath("ruta")Para elementos sin ID ni clase, o con estructura complejaMedia
LinkTextBy.linkText("texto")Para seleccionar enlaces por su texto exactoRápida
ClassNameBy.className("clase")Cuando el elemento tiene una clase CSS únicaRápida

Configurar el entorno de Selenium en Java

Antes de poder seleccionar elementos web con Selenium en Java necesitas tener el entorno configurado. Si aún no lo tienes, estos son los pasos básicos:

  1. Descarga Selenium Java desde el sitio oficial selenium.dev e incluye el JAR en tu proyecto.
  2. Configura las dependencias en Maven o Gradle. Con Maven añade esto a tu pom.xml:
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.18.1</version>
</dependency>
  1. Importa las clases necesarias en tu archivo Java:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;

Con esto ya puedes usar cualquiera de los 6 métodos para seleccionar elementos web con Selenium en Java que verás a continuación.

Diagrama para seleccionar elementos web con Selenium en Java mostrando estructura DOM y localizadores By.id, By.cssSelector y By.xpath

Métodos para seleccionar elementos web con Selenium en Java

1. Seleccionar elemento por ID en Selenium Java

El localizador por ID es el más rápido y fiable de todos. Úsalo siempre que el elemento tenga un atributo id único en el HTML.

HTML del elemento:

<input type="text" id="username" name="user" class="form-field">

Código Java:

WebElement campo = driver.findElement(By.id("username"));
campo.sendKeys("sara@testealo.com");

Cuándo usarlo: siempre que sea posible. Es el localizador más estable porque los IDs raramente cambian entre versiones de la aplicación.

Cuándo no usarlo: cuando el ID se genera dinámicamente, por ejemplo id="field_38472". En ese caso el test se romperá en la siguiente ejecución.

2. Seleccionar elemento por Name en Selenium Java

El localizador por Name es muy útil para campos de formulario, donde el atributo name suele ser estable y descriptivo.

LEER  Metodología Scrum: ventajas y desventajas para equipos de desarrollo

HTML del elemento:

<input type="password" name="password" class="form-field">

Código Java:

WebElement contrasena = driver.findElement(By.name("password"));
contrasena.sendKeys("MiPassword123");

Cuándo usarlo: en campos de formulario como inputs de texto, contraseñas o selects donde el atributo name es único.

Cuándo no usarlo: cuando varios elementos comparten el mismo name, ya que findElement devolverá solo el primero.

3. Seleccionar elemento por CSS Selector en Selenium Java

El CSS Selector es el localizador más flexible después de XPath y considerablemente más rápido. Permite seleccionar elementos por clase, atributo, posición o combinación de varios criterios.

HTML del elemento:

<button class="btn btn-primary" data-action="login">Iniciar sesión</button>

Código Java:

// Por clase
WebElement boton = driver.findElement(By.cssSelector("button.btn-primary"));

// Por atributo
WebElement boton = driver.findElement(By.cssSelector("button[data-action='login']"));

Cuándo usarlo: cuando el elemento no tiene ID pero tiene una clase o atributo estable. Es la mejor alternativa al ID en la mayoría de casos.

Cuándo no usarlo: cuando necesitas navegar por la jerarquía del DOM hacia arriba (los CSS Selectors solo permiten navegar hacia abajo).

4. Seleccionar elemento por XPath en Selenium Java

XPath es el localizador más potente pero también el más lento y el más frágil si no se usa bien. Permite navegar por toda la estructura del DOM en cualquier dirección.

HTML del elemento:

<div class="login-form">
    <input type="text" placeholder="Usuario">
</div>

Código Java:

// XPath absoluto (evitar, muy frágil)
WebElement campo = driver.findElement(By.xpath("/html/body/div/form/input"));

// XPath relativo (recomendado)
WebElement campo = driver.findElement(By.xpath("//input[@placeholder='Usuario']"));

// XPath con texto
WebElement boton = driver.findElement(By.xpath("//button[text()='Iniciar sesión']"));

Cuándo usarlo: cuando necesitas seleccionar un elemento basándote en el texto que contiene, o cuando necesitas navegar hacia un elemento padre desde un hijo.

Cuándo no usarlo: evita los XPath absolutos como /html/body/div[2]/form/input[1]. Se rompen con cualquier cambio en la estructura HTML de la página.

5. Seleccionar elemento por LinkText en Selenium Java

El localizador LinkText selecciona enlaces (<a>) por el texto exacto que muestran al usuario.

HTML del elemento:

<a href="/dashboard">Ir al panel de control</a>

Código Java:

// Por texto exacto
WebElement enlace = driver.findElement(By.linkText("Ir al panel de control"));

// Por texto parcial
WebElement enlace = driver.findElement(By.partialLinkText("panel de control"));

Cuándo usarlo: cuando necesitas hacer clic en un enlace y el texto es estable y único en la página.

Cuándo no usarlo: cuando el texto del enlace cambia según el idioma de la aplicación o el estado del usuario.

6. Seleccionar elemento por ClassName en Selenium Java

El localizador por ClassName selecciona elementos que tienen una clase CSS específica.

LEER  Cómo Organizar tu Trabajo con un Tablero Kanban: Guía Visual Paso a Paso [2025]

HTML del elemento:

<div class="error-message">Usuario o contraseña incorrectos</div>

Código Java:

WebElement mensaje = driver.findElement(By.className("error-message"));
System.out.println(mensaje.getText());

Cuándo usarlo: cuando el elemento tiene una clase CSS única y semánticamente descriptiva.

Cuándo no usarlo: cuando la clase es genérica como btn o container, ya que habrá múltiples elementos con esa clase en la página.

Buenas prácticas al seleccionar elementos web con Selenium en Java

Después de años automatizando pruebas con Selenium en Java, estas son las reglas más importantes para seleccionar elementos web con Selenium en Java de forma estable:

  • Prioriza este orden: ID > Name > CSS Selector > XPath. Cuanto más arriba en esta lista, más estable y rápido será tu test.
  • Evita los XPath absolutos. Usa siempre XPath relativos que comiencen con //.
  • No uses clases de estilos para localizar. Clases como text-red-500 o mt-4 pueden cambiar con cualquier actualización de diseño.
  • Habla con el equipo de desarrollo. Si los elementos no tienen IDs estables, pide que los añadan con el atributo data-testid. Es una práctica habitual en equipos con cultura de testing.

Conclusión

Dominar cómo seleccionar elementos web con Selenium en Java te permitirá marcar la diferencia entre tests estables y tests que se rompen con cada cambio de la interfaz. Como regla general: usa ID siempre que puedas, CSS Selector cuando necesites más flexibilidad, y XPath solo cuando no haya otra opción.

¿Necesitas datos de prueba para tus tests con Selenium? Usa nuestro generador de datos de prueba gratuito y olvídate de inventarte nombres, emails y DNIs a mano.

Deja un comentario

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad