Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

123
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!