Estoy escribiendo pruebas de Cypress para un sitio web que tiene una serie de citas, algunas de las cuales tienen un botón "Leer más" al final, que muestra el resto de la cita. si uso
cy.get(".quote")devuelve una lista de varias cotizaciones. Puedo usar
cy.get(".quote").find(".read-more").first()para encontrar la primera cita que tiene un botón Leer más, pero quiero saber cuál es el índice de ese elemento en la lista original de citas. Estoy probando para asegurarme de que el botón Leer más revele correctamente la cita completa, pero el botón desaparece (se elimina por completo del DOM, no solo se establece en visibilidad: ninguno) una vez que se hace clic en él, por lo que no puedo usar el mismo Comando para encontrar la cita de nuevo. Si pudiera acceder al elemento de esa cita, podría usar
cy.get(".quote").eq(element)para extraer esa cita específica nuevamente una vez que el botón Leer más desaparezca.
Puedes hacer algo como esto. Aplique each sobre las comillas, luego dentro de cada busque la cita que está buscando y luego obtenga el índice de esa cita.
cy.get('.quote').each(($ele, index) => { if ($ele.text().includes('some part of the quote')) { cy.log(index) //logs the index } })El botón Leer más revela correctamente la cita completa y luego el botón desaparece una vez que se hace clic
Suponiendo que el botón read more elimine el .read-more del elemento de cotización después de hacer clic, entonces puede hacer lo siguiente.
cy.get('.quote') // returns all quotes .find('.read-more') // only quotes with 'read more' .each(($quote) => { cy.wrap($quote).find('.read-more-button').should('be.visible').click() //check read more button is visible, then click cy.wrap($quote).invoke('text').should('include.text',COMPLETE_QUOTE) // you can alter the should to however you best see to the text assertion cy.wrap($quote).find('.read-more-button').should('not.exist') // particular read more button does not exist in DOM })