El título puede ser confuso, no sabía cómo poner mis pensamientos en palabras.
Permítanme explicar ese ejemplo simple. Dada la siguiente tabla...
<table> <tr> <th>Company</th> <th>Contact</th> <th>Country</th> </tr> <tr> <td>Alfreds Futterkiste</td> <td>Maria Anders</td> <td>Germany</td> </tr> </table>... Me gustaría:
<th> que contiene "Contacto" (que es 1 en este caso)<td> ) contiene un valor específico, en este caso, "Maria Anders"No tengo idea de cómo abordar el punto 1.
Sé que podría usar
cy.get('th').eq(1).should('contain', 'Contact') cy.get('td').eq(1).should('contain', 'Maria Anders') pero en mi caso, el contenido de la tabla es dinámico, y no puedo esperar que el encabezado que busco esté bajo un índice específico. En cambio, me gustaría encontrar el índice <th> después del texto del título.
Esto es posible devolviendo el index del comando .each() de Cypress. Suponiendo que hay una correlación de 1:1 entre la posición del índice en cada fila, debería funcionar algo como lo siguiente...
cy.get('th').each(($th, index) => { if ($th.text() === 'Contact') { cy.get('tr').eq(index).should('contain', 'Maria Anders'); // Assuming we'd only find one `Contact` header, we can exit the `.each()` once found return false } }); Si no hay una correlación 1:1 donde el th y el tr tienen el mismo índice, puede hacer algo similar para averiguar la relación entre el índice del th y el índice del tr .