Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

182
Vistas
Condición de parada de bucle foreach de Cypress

Necesito ayuda con el siguiente bucle:

 localStorage.removeItem('DDFound'); cy.get(sel).each(($el, index, $list) => { if(localStorage.getItem('DDFound')!='1') { cy.log(localStorage.getItem('DDFound')); cy.wrap($el).click().then(()=> { cy.get(table).then(elx => { if(elx.find(tableitem).length > 0) { cy.get(tableitem).click(); cy.get(lable).should('contain.text',"Item") localStorage.setItem('DDFound','1'); } }) }); } });

Me gustaría romper justo después de encontrar el elemento correcto (tableitem) y para eso, estoy configurando un almacenamiento local (no encontré ninguna otra manera) pero parece que Cypress ejecuta todos los elementos en cada ciclo en paralelo y no llega a el if(localStorage.getItem('DDFound')!='1') después de cada elemento.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Si tiene un código complejo dentro de .each() , debe envolverlo en una promesa

 let found = false; cy.get(sel).each(($el, index, $list) => { if (found) return false; // early exit return new Cypress.Promise(resolve => { cy.wrap($el).click().then(() => { cy.get(table).then(elx => { if (elx.find(tableitem).length > 0) { cy.get(tableitem).click(); cy.get(label).should('contain.text',"Item") found = true; } resolve() // wait for above to complete }) }) }) })

Ver .each() - Promesas

Se esperan promesas

Si su función de devolución de llamada devuelve una Promesa, se esperará antes de iterar sobre el siguiente elemento de la colección.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede detener el bucle .each() antes devolviendo falso en la función de devolución de llamada. En su caso, podemos devolver el valor si DDItem no es igual a uno.

 localStorage.removeItem('DDFound'); cy.get(sel).each(($el, index, $list) => { if(localStorage.getItem('DDFound')!='1') { cy.log(localStorage.getItem('DDFound')); cy.wrap($el).click().then(()=> { cy.get(table).then(elx => { if(elx.find(tableitem).length > 0) { cy.get(tableitem).click(); cy.get(lable).should('contain.text',"Item") localStorage.setItem('DDFound','1'); } }) }); } return localStorage.getItem('DDFound') !== 1 });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda