Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

119
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda