Qué es un Selector CSS en Selenium

Un selector CSS es una cadena que describe un patrón para localizar elementos HTML en una página web según su etiqueta, ID, clase, atributos o texto visible.

En Selenium, se utiliza con el método:

By.cssSelector("patrón css aquí");

Este método localiza el elemento que coincide con el patrón CSS y permite interactuar con él (hacer clic, escribir, extraer texto, etc.).

Por qué usar Selectores CSS

Son más rápidos que XPath en la mayoría de los navegadores.
Son compatibles entre navegadores.
Son sintaxis más sencilla para localizadores complejos.
✅ Permiten localizar elementos sin IDs o nombres únicos.

Tipos Comunes de Selectores CSS (con ejemplos)

TipoSintaxisEjemploDescripción
Por ID#id#loginSelecciona un elemento por su ID
Por clase.clase.boton-enviarSelecciona elementos por su clase
Por atributo[atributo='valor'][type='email']Selecciona elementos con un atributo específico
Por etiquetaetiquetabuttonSelecciona elementos por su etiqueta
Combinadosetiqueta.clase[atributo]input.formulario[type='text']Combina etiqueta, clase y atributo

Operadores de coincidencia de Subcadenas

OperadorSignificadoEjemploEncuentra elementos…
^Comienza coninput[name^='usuario']con nombre que comienza con usuario
$Termina coninput[id$='clave']con ID que termina en clave
*Contieneinput[class*='login']con login en cualquier parte de la clase

Ejemplo en Selenium con Java

WebDriver driver = new ChromeDriver();
driver.get("https://www.facebook.com");

// Localizar campo de correo por ID
driver.findElement(By.cssSelector("input#email")).sendKeys("test@example.com");

// Localizar campo de contraseña por clase y atributo
driver.findElement(By.cssSelector("input.inputtext[name='pass']")).sendKeys("miContraseña");

// Localizar botón de inicio de sesión por atributo
driver.findElement(By.cssSelector("button[name='login']")).click();

driver.quit();

Buenas prácticas

  • Usa selectores estables y únicos. Evita IDs o clases dinámicas.
  • Combina atributos para elementos complejos.
  • Evita rutas CSS profundas (frágiles ante cambios en la UI).
  • Prefiere atributos funcionales como name="submit" para mayor fiabilidad.

Resumen de selectores CSS más comunes

TareaSelector
Por ID#botonLogin
Por clase.nav-item
Por atributo[type='email']
Por etiqueta + claseinput.form-control
Por múltiples atributosinput[type='text'][name='usuario']
Elemento anidado#navbar .nav-item:first-child
Contiene textolabel:contains('Correo') (en Selenium IDE)

Conclusión

Los selectores CSS son concisos, legibles y en la mayoría de los casos, más rápidos que XPath en tus scripts de automatización.

Úsalos cuando desees localizadores limpios y mantenibles que hagan que tus pruebas en Selenium sean más rápidas y menos propensas a fallos entre navegadores.

Vistas: 1