Selector de CSS en Selenium
โก Resumen inteligente
Selector de CSS en Selenium es una poderosa estrategia de localizaciรณn que identifica elementos usando etiquetas HTML, ID, clases, atributos y patrones de texto internos. Este recurso explica cada tipo de selector CSS con ejemplos paso a paso para Selenium IDE

ยฟQuรฉ es un selector CSS? Selenium?
A Selector de CSS en Selenium Es un patrรณn de cadena que identifica un elemento web a travรฉs de una combinaciรณn de etiqueta HTML, ID, clase y atributos. Los selectores CSS son un poco mรกs avanzados que la localizaciรณn por ID o nombre, pero son la estrategia mรกs popular entre los expertos. Selenium usuarios porque pueden acceder a elementos que no tienen ningรบn atributo de ID o Nombre.
Selectores CSS en Selenium vienen en muchas formas, pero esta guรญa se centra en los cinco patrones mรกs comunes utilizados en Selenium IDE:
- Etiqueta e identificaciรณn
- Etiqueta y clase
- Etiqueta y atributo
- Etiqueta, clase y atributo
- Texto interno
Al utilizar esta estrategia en Selenium IDE, siempre anteponga el Target caja con โcss=โ como se demuestra en cada uno de los ejemplos a continuaciรณn.
ยฟPor quรฉ usar selectores CSS en? Selenium?
Los selectores CSS son la estrategia de localizaciรณn preferida para muchos Selenium Los ingenieros de automatizaciรณn buscan equilibrar velocidad, flexibilidad y legibilidad. Las aplicaciones web modernas suelen usar identificadores generados dinรกmicamente o eliminan por completo los atributos de nombre, lo que deja a los selectores CSS como la รบnica forma fiable de seleccionar un elemento especรญfico en la pรกgina.
Las principales ventajas de utilizar selectores CSS incluyen:
- Actuaciรณn: Los selectores CSS son procesados โโpor el motor nativo del navegador, por lo que se ejecutan mรกs rรกpido que las expresiones XPath equivalentes, especialmente en navegadores antiguos como Internet Explorer.
- Flexibilidad: Combinan lรณgica de etiquetas, clases, atributos y coincidencias parciales, lo que permite a los evaluadores identificar elementos que carecen de un ID estable.
- Legibilidad: La sintaxis reproduce la forma en que los desarrolladores ya escriben reglas CSS, lo que acorta la curva de aprendizaje tanto para los ingenieros de control de calidad como para los equipos de desarrollo front-end.
- Estabilidad en diferentes navegadores: Los selectores CSS se comportan de manera consistente en Chrome, Firefox, Edge y Safari, reduciendo los fallos de prueba inestables.
Etiqueta e ID โ Selector CSS
Este ejemplo utiliza el cuadro de texto Correo electrรณnico en la pรกgina de inicio de sesiรณn de Facebook. El elemento tiene un ID de โo enviar un email.โ, y ya se habรญa accedido a รฉl en la secciรณn โLocalizaciรณn por IDโ. Ahora se apunta al mismo elemento usando un Selenium Selector CSS con el atributo ID.
Sintaxis
css=tag#id
- etiqueta = la etiqueta HTML del elemento al que se accede
- # = el signo de almohadilla, que siempre debe estar presente cuando se utiliza un Selenium Selector CSS con ID
- id = el ID del elemento al que se accede
Tenga en cuenta que el ID siempre va precedido de un signo de almohadilla (#).
Paso 1) Navegue a www.facebook.comUtilizando las herramientas para desarrolladores de tu navegador (o una herramienta mรกs antigua como Firebug), inspecciona el cuadro de texto "Correo electrรณnico o telรฉfono".
Observe que la etiqueta HTML es โLas opciones de entradaโ y su ID es โo enviar un email.โ. Por lo tanto, el selector CSS completo se convierte en โcss=entrada#correo electrรณnico".
Paso 2) Entrar "css=entrada#correo electrรณnico" en el Target caja de Selenium IDE y haga clic en el botรณn Buscar. Selenium El IDE resalta el elemento coincidente en la pรกgina.
Etiqueta y clase: selector CSS
Un selector CSS en Selenium que utiliza una etiqueta HTML y un nombre de clase sigue la misma idea que etiqueta e ID, pero un punto (.) reemplaza el signo de almohadilla.
Sintaxis
css=tag.class
- etiqueta = la etiqueta HTML del elemento al que se accede
- . = el signo de punto, que siempre debe estar presente cuando se utiliza un selector CSS con clase
- clase = la clase del elemento al que se accede
Paso 1) Abra la pรกgina de demostraciรณn https://demo.guru99.com/test/facebook.html e inspeccione el cuadro de texto โCorreo electrรณnico o telรฉfonoโ. Tenga en cuenta que la etiqueta HTML es โLas opciones de entradaโ y su clase es โtexto de entrada".
Paso 2) In Selenium IDE, ingrese โcss=entrada.texto de entrada"En el Target cuadro y haga clic en Buscar. Selenium El IDE reconoce el cuadro de texto de correo electrรณnico o telรฉfono.
Tenga en cuenta que cuando varios elementos comparten la misma etiqueta HTML y clase, solo se reconoce el primer elemento coincidente en el cรณdigo fuente. Examine el cuadro de texto Contraseรฑa en la misma pรกgina y observe que comparte la misma clase que el cuadro de texto Correo electrรณnico o Telรฉfono.
En la ilustraciรณn anterior, solo se resaltรณ el cuadro de texto de correo electrรณnico o telรฉfono porque aparece primero en el cรณdigo fuente de la pรกgina.
Etiqueta y atributo โ Selector CSS
Esta estrategia combina una etiqueta HTML con un atributo especรญfico perteneciente al elemento al que se desea acceder.
Sintaxis
css=tag[attribute=value]
- etiqueta = la etiqueta HTML del elemento al que se accede
- [ y ] = corchetes que encierran el atributo y su valor correspondiente.
- atributo = el atributo que se utilizarรก. Elija uno que sea รบnico para el elemento, como nombre o ID.
- valor = el valor correspondiente del atributo elegido.
Paso 1) Navegue a la pestaรฑa Mercury Pรกgina de registro para visitas guiadas https://demo.guru99.com/test/newtours/register.php y examine el cuadro de texto โApellidoโ. Observe su etiqueta HTML (โinputโ) y su atributo de nombre (โlastNameโ).
Paso 2) In Selenium IDE, ingrese โcss=entrada[nombre=apellido]"En el Target cuadro y haga clic en Buscar. Selenium El IDE localiza correctamente el campo Apellido.
Cuando varios elementos comparten la misma etiqueta y atributo HTML, solo se reconoce el primero. El comportamiento es idรฉntico al de localizar elementos con la misma etiqueta y clase.
Etiqueta, clase y atributo: selector CSS
Sintaxis
css=tag.class[attribute=value]
- etiqueta = la etiqueta HTML del elemento al que se accede
- . = el signo de punto, que siempre debe estar presente cuando se utiliza un selector CSS con clase
- clase = la clase del elemento al que se accede
- [ y ] = corchetes que encierran un atributo especรญfico y su valor correspondiente.
- atributo = el atributo que se utilizarรก. Elija uno que sea รบnico para el elemento, como nombre o ID.
- valor = el valor correspondiente del atributo elegido.
Paso 1) Abra la pรกgina de demostraciรณn https://demo.guru99.com/test/facebook.html e inspeccione los campos de entrada โCorreo electrรณnico o telรฉfonoโ y โContraseรฑaโ. Anote su etiqueta HTML, clase y atributos. Este ejemplo utiliza la โรญndice de tabulaciรณn" atributo.
Paso 2) Acceda primero al cuadro de texto โCorreo electrรณnico o telรฉfonoโ utilizando un valor de tabindex de 1. Introduzca โcss=entrada.texto de entrada[tabindex=1]" dentro Selenium IDE Target En la casilla, haga clic en Buscar. El campo Correo electrรณnico o Telรฉfono se resaltarรก.
Paso 3) Para seleccionar el cuadro de entrada de contraseรฑa, simplemente reemplace el valor de tabindex. Ingrese โcss=entrada.texto de entrada[tabindex=2]"En el Target cuadro y haga clic en Buscar. Selenium El IDE localiza correctamente el cuadro de texto de la contraseรฑa.
Texto interno โ Selector CSS
Las etiquetas HTML rara vez reciben atributos de id, nombre o clase. Entonces, ยฟcรณmo se accede a ellos? SeleniumLa respuesta estรก en su texto interior. Los textos internos son los patrones de cadena reales que la etiqueta HTML muestra en la pรกgina.
Sintaxis
css=tag:contains("inner text")
- etiqueta = la etiqueta HTML del elemento al que se accede
- texto interno = el contenido de texto visible del elemento
Paso 1) Navegue a la pestaรฑa Mercury Pรกgina de inicio de excursiones https://demo.guru99.com/test/newtours/ y examine la etiqueta โPasswordโ. Observe su etiqueta HTML (โfontโ en este caso) y compruebe que el elemento no tiene atributos de clase, ID o nombre.
Paso 2) Tipo css=fuente:contiene(โContraseรฑa:โ) cobren Selenium IDE Target cuadro y haga clic en Buscar. Selenium El IDE localiza la etiqueta Contraseรฑa como se muestra a continuaciรณn.
Paso 3) Esta vez, reemplace el texto interior con โBostonโ para que el Target se convierte en โcss=font:contains(โBostonโ)โ. Haga clic en Buscar. La etiqueta โBoston a San Franciscoโ estรก resaltada, lo que demuestra que Selenium El IDE puede localizar una etiqueta larga incluso cuando solo se proporciona la primera palabra de su texto interno.
Selector CSS vs XPath en Selenium
Tanto los selectores CSS como XPath se utilizan para identificar elementos web en SeleniumSin embargo, presentan diferentes fortalezas. La siguiente tabla compara las dos estrategias de localizaciรณn en dimensiones clave:
| Criterios | Selector de CSS | XPath |
|---|---|---|
| Velocidad | Mรกs rรกpido, funciona con el motor nativo del navegador. | Mรกs lento, especialmente en navegadores antiguos. |
| SENTIDO DE SALIDA: | Solo hacia adelante (de padre a hijo) | Hacia adelante y hacia atrรกs (del niรฑo al padre) |
| Sintaxis | Mรกs cortas y similares a las reglas CSS. | Expresiones de ruta mรกs largas y jerรกrquicas |
| Coincidencia de texto | Limitado a la pseudoclase :contains() | Funciones Strong text() y contains() |
| Mejores para | Diseรฑos estรกticos y aplicaciones web modernas | Recorrido complejo del DOM y localizadores basados โโen texto |
Mejores prรกcticas para escribir selectores CSS en Selenium
Escribir selectores CSS confiables va mรกs allรก de conocer la sintaxis. Las siguientes prรกcticas ayudan a los evaluadores a crear selectores CSS estables y mantenibles. Selenium Scripts que se conservan tras los cambios en la interfaz de usuario:
- Preferir atributos รบnicos: Siempre seleccione los atributos id, data-test-id o name que se agregan explรญcitamente para la automatizaciรณn. Estos se mantienen estables incluso cuando cambia el diseรฑo visual.
- Evite los selectores excesivamente anidados: Cadenas largas como
div > div > ul > li > aSe rompen fรกcilmente cuando los desarrolladores refactorizan el marcado. Mantรฉn los selectores lo mรกs cortos posible. - Utilice las coincidencias parciales con prudencia: Patrones como
[class*="btn-primary"]Toleran pequeรฑos cambios en los nombres de las clases, pero tambiรฉn pueden coincidir con elementos no deseados. - Evite los localizadores basados โโen รญndices: Selectores como
nth-child(3)son frรกgiles porque al aรฑadir un elemento hermano se desplaza cada posiciรณn. - Validar selectores en DevTools: Antes de ejecutar un Selenium script, pegue el selector en la consola de herramientas para desarrolladores de Chrome usando
document.querySelector()para confirmar que devuelve exactamente un elemento. - Combina atributos para lograr un producto รบnico: Cuando una clase es compartida por muchos elementos, agregue un filtro de atributo como por ejemplo:
input.form-control[name="email"]para desambiguar el objetivo. - Documentar y reutilizar: Centraliza los selectores dentro de una clase Page Object para que una sola actualizaciรณn corrija todas las pruebas que hagan referencia al mismo elemento.
Seguir estas pautas reduce la inestabilidad, mejora la velocidad de ejecuciรณn de las pruebas y hace que... Selenium suites mรกs fรกciles de mantener con el tiempo.
Resumen: Guรญa rรกpida de sintaxis de selectores CSS
La tabla a continuaciรณn consolida todos Selenium Patrรณn de selector CSS que se trata en esta guรญa:
| Mรฉtodo | Target Sintaxis | Ejemplo |
|---|---|---|
| Etiqueta e identificaciรณn | css=etiqueta#id | css=entrada#correo electrรณnico |
| Etiqueta y clase | css=etiqueta.clase | css=entrada.texto de entrada |
| Etiqueta y atributo | css=etiqueta[atributo=valor] | css=entrada[nombre=apellido] |
| Etiqueta, clase y atributo | css=etiqueta.clase[atributo=valor] | css=entrada.texto de entrada[tabindex=1] |
| Texto interno | css=tag:contains(โtextโ) | css=fuente:contiene(โContraseรฑa:โ) |














