Tengo una lista en un archivo html simple solo con los correos electrónicos recibidos y quiero acceder al último correo electrónico de la lista desde una dirección de correo electrónico específica. Probé con last (), pero no funcionó, simplemente no me lleva al último elemento, sino a uno de los primeros elementos de la lista.
cy.contains('test@test5.com').last().click()Un elemento de la lista tiene el siguiente código:
<br> <a href="/Emails/2020-12-03%2016_40_54%20-%20test@test5.com.html">2020-12-03 16_40_54 - test@test5.com.html</a>Es un problema con Cypress, algunos comandos "producen" muchos elementos y algunos solo un elemento.
Puede verificar la sección contiene () - Rendimientos del comando, esta solo le da un elemento, que será el .first() en la lista.
.contains() produce el nuevo elemento DOM que encontró.
En mi opinión, los documentos deberían ser más explícitos. Aprendes a aprenderlo con la experiencia, pero puedes perder mucho tiempo tratando de piratear con lo que parecen comandos legítimos.
Pruebe .get() y .filter() , usando jQuery pseudo-selector :contains() que devuelve todos los elementos coincidentes
cy.get('a') .filter(':contains(test@test5.com)') .last() o agregue el pseudo-selector :contains() dentro de .get()
cy.get('a:contains(test@test5.com)') .last()Suponiendo que test@test5.com es único y aparece una vez en su página web, escribe:
cy.contains('a', 'test@test5.com.html').click()