Interacción y validación de tablas HTML con Cypress
Clase 19 de 23 • Curso de Automatización de Pruebas UI con Cypress
Resumen
¿Cómo trabajar con tablas en HTML y Cypress?
Las tablas HTML son una parte esencial del desarrollo web y entender cómo interactuar con ellas utilizando Cypress puede mejorar significativamente tu capacidad para validar y extraer información de manera eficiente. A continuación, te explicaré paso a paso cómo lograrlo.
¿Cómo interactuar con tablas usando Cypress?
Para comenzar a trabajar con tablas en Cypress, es fundamental tener un acceso efectivo a los elementos de la tabla que quieres manipular. Veamos cómo hacerlo:
-
Identificación de la tabla:
- Usa el método
c.get()
de Cypress para seleccionar la tabla que quieres. Por ejemplo, si la tabla tiene unID
decustomers
, puedes seleccionarla así:c.get('#customers')
- Usa el método
-
Extracción de encabezados:
- Para obtener los encabezados (th) de la tabla, utiliza el método
find()
junto coneach()
para iterar sobre ellos y extraer el texto. Esto es útil para validar que se despliegan correctamente.c.get('#customers').find('th').each((element) => { c.log(element.text()); });
- Para obtener los encabezados (th) de la tabla, utiliza el método
¿Cómo validar el contenido de las celdas?
Después de identificar y extraer los encabezados de la tabla, la validación del contenido de las celdas es el siguiente paso crucial.
-
Validar un elemento específico:
- Utiliza el método
first()
para obtener el primer elemento si deseas validar el encabezado inicial. Coninvoke('text')
puedes invocar el texto y verificar su contenido conshould()
.c.get('#customers').find('th').first().invoke('text').should('equal', 'Company');
- Utiliza el método
-
Validar un elemento en una posición específica:
- Si quieres validar un elemento en la segunda posición, utiliza
eq()
. Asegúrate de ajustar el texto que estás validando:c.get('#customers').find('th').eq(1).invoke('text').should('equal', 'Contact');
- Si quieres validar un elemento en la segunda posición, utiliza
¿Cómo contar las filas y validar su contenido?
Contar el número de filas te puede ayudar en pruebas donde necesitas asegurar un número específico de datos.
-
Contar filas en la tabla:
- Usando
find('tr')
, puedes obtener todas las filas. Luego, validas su cantidad conshould()
.c.get('#customers').find('tr').should('have.length', 7);
- Usando
-
Validar contenido específico en una fila:
- Al igual que con los encabezados, puedes navegar por las filas y celdas utilizando
find()
y validar el texto.c.get('#customers').find('tr').eq(1).find('td').eq(1).invoke('text').should('equal', 'Maria Anders');
- Al igual que con los encabezados, puedes navegar por las filas y celdas utilizando
¿Qué otras metodologías existen para manejar celdas?
Además de invoke('text')
, puedes emplear diferente sintaxis o métodos según tus necesidades individuales y preferencias.
- Usar Promesas con
then()
:- Puedes usar
then()
para manejar el texto de forma diferente:c.get('#customers').find('tr').eq(1).find('td').eq(1).then((element) => { const text = element.text(); expect(text).to.equal('Maria Anders'); });
- Puedes usar
Interactuar con tablas en Cypress puede potenciar tus habilidades de prueba automatizada. Estos métodos te ofrecen la flexibilidad necesaria para asegurarte de que los datos insertados y representados en una página se gestionan correctamente. Recuerda que la práctica constante y la exploración de nuevas técnicas son claves para convertirte en un experto en la materia. ¡Sigue adelante y nunca dejes de aprender!