Mientras uso Cypress, me gustaría comprender las formas de realizar una acción frente a no realizar una acción en función del elemento encontrado o no. Intenté todo a continuación con la ayuda de la búsqueda de Google, pero terminé con solo un montón de horas desperdiciadas:
cy.xpath('').then($ele => {}) - lanza Se agotó el tiempo de reintento después de 20000ms: Se esperaba encontrar el elemento: //div[text()='hello']//div, pero nunca lo encontró .cy.xpath('').then(ele => { eleLenght = Cypress.$(ele).length}) - arroja Se agotó el tiempo de reintento después de 20000ms: se esperaba encontrar el elemento: //div[text()='hello' ]//div, pero nunca lo encontré.cy.xpath('').then($ele => {}).catch({}) - catch no está definidocy.xpath('').its('lenght').then($ele => {}) /div, pero nunca lo encontré.cy.xpath('').should('be:visisble').then($ele => {}) - throws Timed out retrying after 20000ms: Se esperaba encontrar el elemento: //div[text()='hello' ]//div, pero nunca lo encontré.Mi caso: si un elemento está presente, quiero intentar eliminarlo, pero si no está presente, ¡continúe con gracia sin arrojar el molesto error como se indicó anteriormente!
¿Alguien puede ayudar aquí? ¡El documento de prueba condicional proporcionado en Cypress no ayuda en absoluto!
Puedes hacerlo fácilmente con notación jquery:
if (Cypress.$("#your-element-id").length > 0) { //do something } else { //do nothing }¿Has probado a continuación?
cy.xpath('').should('have.length.gt',0).then($ele => {console.log($ele)})