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

117
Vistas
Cypress hace clic en un conjunto de elementos pero no en bucle para siempre

Tengo algunos lugares en los que necesito hacer clic en varios elementos, pero no quiero que se repita. Siento que la respuesta está justo frente a mí, pero no puedo encontrar la solución correcta.

Aquí hay un ejemplo de código que en este momento está atascado en un bucle infinito:

 for(let n = 1; n <= 19; n++){ cy.get('li.active > .nav > :nth-child(n) > a').click({multiple: true}) cy.wait(400) }

Tengo 19 elementos, todos iguales, solo numerados del 1 al 19 y solo quiero que la prueba haga clic en ellos, espere a que muestre la página y luego haga clic en el siguiente.


Responder

 cy.get('#side-menu > :nth-child(2) > a').click() cy.wait(400) cy.get('li.active > .nav').each(($ele) => { cy.wrap($ele).find('a').click({multiple:true}) })

También me ocupé de mi otro bucle for que duró para siempre y nunca se detuvo a menos que se detuviera manualmente como este problema original reemplazándolo con each() también.

 cy.get('#side-menu > li > a').each(($ele) => { cy.wrap($ele).click({multiple:true}) }) ```
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede usar el bucle each() para iterar a través de sus elementos y hacer clic en los botones uno por uno:

 cy.get('li.active > .nav').each(($ele) = > { cy.wrap($ele).find('a').click() })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si su página se actualiza con cada clic, no puede usar Cypress .each() porque obtendrá el error "separado del DOM".

Pruebe una función recursiva

 it('tests the nav buttons', () => { function clickNav(buttonNum) { if (buttonNum === 20) return // finished cy.get('li.active > .nav > :nth-child(n) > a').click() cy.wait(400) clickNav(++buttonNum) // next } clickNav(1) })

Pero algo más está sucediendo, técnicamente su ciclo también debería funcionar.

about 4 years ago · Juan Pablo Isaza Denunciar

0

gracias por las soluciones - Alpan funcionó como tal:

 cy.get('#side-menu > :nth-child(2) > a').click() cy.wait(400) cy.get('li.active > .nav').each(($ele) => { cy.wrap($ele).find('a').click({multiple:true}) })

Olvidé que tenía que abrir el menú desplegable a través del clic del enésimo niño y luego agregué {multiple:true} dentro del clic en each()

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