Localizadores CSS

Intermedio
Selenium
Selenium
Actualizado: 05/09/2025

¡Desbloquea el curso de Selenium completo!

IA
Ejercicios
Certificado
Entrar

Mira la lección en vídeo

Accede al vídeo completo de esta lección y a más contenido exclusivo con el Plan Plus.

Desbloquear Plan Plus

Sintaxis CSS para Selenium IDE

Los selectores CSS son una alternativa práctica a los localizadores básicos cuando los elementos no tienen IDs únicos o atributos Name disponibles. En Selenium IDE, la sintaxis CSS permite localizar elementos utilizando las mismas reglas que se emplean para dar estilo a las páginas web.

Formato básico en Selenium IDE

Para utilizar un selector CSS en Selenium IDE, siempre debes preceder el selector con el prefijo css=. Esta es la sintaxis fundamental:

css=selector_aquí

Por ejemplo, si quieres localizar un botón por su clase, utilizarías:

css=.nombre-clase

Selectores por ID

Aunque ya conoces el localizador id=, también puedes usar la sintaxis CSS para el mismo propósito. En CSS, los IDs se representan con el símbolo almohadilla (#):

css=#mi-id

Este selector es equivalente a usar id=mi-id, pero te permite combinar el ID con otros criterios si es necesario.

Selectores por clase

Las clases CSS son especialmente útiles cuando varios elementos comparten el mismo estilo. Se representan con un punto (.) seguido del nombre de la clase:

css=.mi-clase

Si tienes un botón con class="btn-primary", podrías localizarlo con:

css=.btn-primary

Selectores por atributo

Los selectores de atributo permiten localizar elementos basándose en cualquier atributo HTML. La sintaxis utiliza corchetes:

css=input[type="email"]
css=button[name="enviar"]
css=div[data-id="contenido"]

Esta aproximación es especialmente útil para formularios donde necesitas distinguir entre diferentes tipos de campos de entrada.

Combinación de criterios

Una de las ventajas de CSS es la capacidad de combinar múltiples criterios en un solo selector. Puedes mezclar elementos, clases, IDs y atributos:

css=input.campo-obligatorio[type="text"]
css=button#enviar.btn-primary
css=div.contenedor[data-section="principal"]

El primer ejemplo localiza un input que tiene la clase "campo-obligatorio" y es de tipo texto. El segundo encuentra un botón con ID "enviar" y clase "btn-primary".

Selectores jerárquicos

Los selectores jerárquicos te permiten navegar por la estructura HTML utilizando relaciones entre elementos:

Descendiente directo (hijo inmediato):

css=div > p
css=form > input[type="submit"]

Cualquier descendiente (hijo, nieto, etc.):

css=div p
css=.contenedor .boton

La diferencia está en el símbolo mayor que (>) que indica descendencia directa, mientras que el espacio indica cualquier nivel de descendencia.

Selectores por posición

Cuando necesitas localizar un elemento específico entre varios similares, puedes usar selectores de posición:

css=li:first-child
css=tr:nth-child(3)
css=p:last-child

El selector nth-child() es particularmente útil para tablas o listas donde necesitas seleccionar una fila o elemento específico por su posición.

Validación en Selenium IDE

Selenium IDE incluye una herramienta de validación que te ayuda a verificar si tu selector CSS es correcto. Cuando introduces un selector en el campo Target, puedes hacer clic en el icono de búsqueda a la derecha para comprobar si localiza el elemento esperado en la página actual.

Esta funcionalidad es especialmente valiosa cuando estás aprendiendo a construir selectores CSS, ya que te proporciona retroalimentación inmediata sobre la efectividad de tu localizador.

Selectores CSS comunes y prácticos

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

Los selectores CSS prácticos se basan en patrones recurrentes que encontramos en aplicaciones web reales. Conocer estos patrones te ayudará a localizar elementos de manera más eficiente cuando los localizadores básicos no estén disponibles.

Selectores para formularios

Los formularios web presentan escenarios comunes donde los selectores CSS son especialmente útiles. Para campos de entrada específicos:

css=input[type="email"]
css=input[type="password"]
css=input[type="tel"]
css=textarea[name="mensaje"]

Cuando necesitas localizar campos obligatorios que suelen tener clases específicas:

css=input.campo-obligatorio
css=input.required
css=.form-control.is-invalid

Para botones de envío que no tienen ID único:

css=button[type="submit"]
css=input[value="Enviar"]
css=.btn.btn-primary[type="submit"]

Selectores para elementos de navegación

Los menús de navegación a menudo requieren selectores específicos para localizar elementos en diferentes niveles:

css=nav ul li a
css=.navbar-nav .nav-item .nav-link
css=ul.menu > li:first-child

Para localizar elementos específicos en menús desplegables:

css=.dropdown-menu li:nth-child(2)
css=.submenu a[href*="contacto"]
css=nav .dropdown-toggle + .dropdown-menu

Selectores para tablas de datos

Las tablas dinámicas requieren selectores que puedan adaptarse a contenido cambiante:

css=table tbody tr:first-child td:nth-child(2)
css=.data-table tr[data-id="123"]
css=th:contains("Nombre") + td

Para localizar elementos específicos dentro de celdas:

css=td .btn-editar
css=tr:nth-child(3) .checkbox
css=tbody tr:last-child .acciones

Selectores para contenido dinámico

El contenido generado dinámicamente a menudo carece de IDs estables, haciendo que los selectores CSS sean esenciales:

css=div[data-testid="producto-card"]
css=.modal.show .modal-body
css=.alert.alert-success:visible

Para elementos que aparecen después de cargar contenido:

css=.loading-complete .content-area
css=.ajax-loaded .resultado-item
css=.dynamically-generated[data-loaded="true"]

Selectores para componentes comunes

Los componentes de interfaz modernos suelen seguir patrones específicos:

Modales y ventanas emergentes:

css=.modal.fade.show
css=.overlay .popup-content
css=.dialog-container .close-button

Pestañas y acordeones:

css=.nav-tabs .nav-item.active
css=.accordion .panel.expanded
css=.tab-content .tab-pane.active

Elementos de lista y tarjetas:

css=.card-deck .card:nth-child(2)
css=.list-group .list-group-item.active
css=.grid-container .grid-item[data-category="productos"]

Selectores con texto parcial

Cuando necesitas localizar elementos basándote en texto parcial, puedes combinar selectores con contenido:

css=button:contains("Guardar")
css=a[href*="descargar"]
css=span[title^="Usuario:"]
css=div[class$="-container"]

Los operadores *= (contiene), ^= (comienza con) y $= (termina con) son especialmente útiles para atributos que pueden variar.

Selectores para estados específicos

Los elementos con estados requieren selectores que consideren clases dinámicas:

css=input:checked
css=.btn.disabled
css=.form-field.has-error
css=.status.active

Para elementos visibles u ocultos:

css=.elemento:visible
css=.contenido:not(.hidden)
css=.panel.expanded:not(.collapsed)

Consejos para elegir el selector adecuado

Prioriza la estabilidad sobre la brevedad. Un selector ligeramente más largo pero estable es mejor que uno corto que puede cambiar:

css=.user-profile .avatar img

Es mejor que:

css=img:nth-child(1)

Combina múltiples atributos cuando un solo atributo no es suficientemente específico:

css=input[type="text"][name="usuario"][class*="form-control"]

Utiliza la herramienta de validación de Selenium IDE para verificar que tu selector localiza exactamente el elemento deseado antes de continuar con la grabación del test.

Aprendizajes de esta lección de Selenium

  • Comprender la sintaxis básica de selectores CSS en Selenium IDE.
  • Aprender a utilizar selectores por ID, clase y atributos.
  • Saber combinar múltiples criterios y usar selectores jerárquicos y de posición.
  • Identificar patrones comunes de selectores CSS para formularios, navegación, tablas y contenido dinámico.
  • Aplicar buenas prácticas para elegir selectores estables y validar su efectividad en Selenium IDE.

Completa este curso de Selenium y certifícate

Únete a nuestra plataforma de cursos de programación y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración