Interacción con Selects y Dropdowns Dinámicos en Formularios
Clase 18 de 23 • Curso de Automatización de Pruebas UI con Cypress
Resumen
¿Cómo interactuar con select y listas dinámicas?
Interactuar con elementos de selección, conocidos comúnmente como "select" o "dropdown", es una habilidad esencial en el desarrollo de formularios web. Estos elementos permiten elegir entre varias opciones, siendo crucial conocer cómo manejarlos, especialmente cuando son dinámicos. Hoy exploraremos cómo trabajar con estos selectores, tanto estáticos como dinámicos, utilizando Cypress, uno de los frameworks más populares para pruebas de interfaces web.
¿Qué es un select y cómo lo encontramos en el DOM?
Un select es un elemento en los formularios que permite seleccionar un valor de una lista predefinida. En el DOM, generalmente se representan con la etiqueta <select>
, la cual contiene múltiples <option>
, donde cada opción puede tener un valor numérico o de cadena. Este es un ejemplo básico de cómo podrías representar un select en HTML:
<select class="custom-select">
<option value="1">United States</option>
<option value="2">Canada</option>
<option value="3">Mexico</option>
</select>
Para encontrar un select en el DOM, es común buscar por clases o atributos específicos asociados con ellos.
¿Cómo seleccionar valores en Cypress?
Cypress ofrece el comando .select()
para interactuar con los select. Puedes optar por seleccionar un elemento basándote en:
-
Índice: Selecciona por la posición en la lista. Por ejemplo, para seleccionar el tercer elemento:
cy.get('.custom-select').select(2); // Selecciona el tercer elemento (índice 2).
-
Valor: Usando el atributo
value
de las opciones.cy.get('.custom-select').select('3'); // Selecciona el valor "3".
-
Texto: Selecciona el texto mostrado en el select.
cy.get('.custom-select').select('Mexico'); // Selecciona "Mexico".
¿Cómo abordar los dropdowns dinámicos?
Los selectores dinámicos, como los de una librería React, requieren un enfoque diferente. Suelen mezclar la funcionalidad de un input y un dropdown, permitiendo tanto escribir como seleccionar directamente. La librería react-select
es un ejemplo de esto, y su uso es cada vez más común en las interfaces modernas.
Estrategia para interactuar con selects dinámicos
Para un select dinámico usando React, se sigue el siguiente proceso:
-
Localizar el input de búsqueda:
Generalmente puedes encontrar un input dentro de un div, y es el id lo que facilita su identificación:cy.get('#react-select-6-input').type(' '); // Activa la lista desplegable.
-
Seleccionar los elementos de la lista:
Aquí usamos los métodos.children()
y.each()
para iterar sobre las opciones y seleccionar el texto deseado:cy.get('#react-select-6-listbox').children().each(($el, index, $list) => { if($el.text() === 'Red') { cy.wrap($el).click(); } });
-
Alternativa usando índice o ID:
Si conoces el índice o ID del elemento, puedes seleccionarlo directamente:cy.get('#react-select-6-option-3').click(); // Selecciona la opción específica.
Recomendaciones al interactuar con selectores
- Familiarización con la estructura del DOM: Al entender cómo están estructurados estos elementos en el DOM, mejorarás la eficiencia y rapidez en su manejo.
- Uso de herramientas de inspección del navegador: Estas permiten identificar rápidamente los selectores necesarios para realizar pruebas.
- Documentación y ejemplos: Familiarizarse con la biblioteca de React o el framework utilizado puede proporcionarte mejores prácticas y ejemplos claros de implementación.
¡Atrévete a llevar tus habilidades al siguiente nivel! Saber manejar correctamente los selectores y listas en los formularios es fundamental para el desarrollo front-end moderno. Con práctica y paciencia, pronto te sentirás cómodo interactuando con estos elementos complejos. Sigue aprendiendo y experimentando, porque en el mundo del desarrollo web siempre hay algo nuevo por descubrir.