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

143
Visualizações
Sigue desplazándote hacia abajo mientras cargas en Cypress

Tengo una página que tiene un elemento donde, si te desplazas hacia abajo, carga nuevos datos.

Esto toma alrededor de 10 segundos.

He escrito la siguiente prueba:

 it('Should display at least one facility in booking panel', (done) => { function recursivelyScroll() { cy.get(element) .scrollTo('bottom'); cy.get(element) .then($el => { // If the element contains a loading class, we wait one second and scroll down again if ($el.find(Loading).length > 0) { setTimeout(recursivelyScroll, 1000); } else { // We are done waiting, no more loading is needed // write test here done(); } }); } recursivelyScroll(); });

CypressError

Se agotó el tiempo después de 4000ms . ¡La devolución de llamada done() nunca se invocó!

El método done() no se llama lo suficientemente rápido según Cypress, pero no tienen documentación sobre cómo extender el done de tiempo. Además, podría haber una mejor manera que desconozco para crear este comportamiento de desplazamiento en Cypress. ¿Hay una solución fácil?

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Has intentado usar el complemento de recursividad en Cypress?

Se vería algo como esto:

 cy.get(element).scrollTo('bottom'); recurse( () => cy.contains('element', 'Loading').should(() => {}), ($quote) => $quote.length > 0 , { limit: 300, log: false, post(){ setTimeout(recursivelyScroll, 1000); } }, )

La idea fue tomada aquí: https://www.youtube.com/watch?v=KHn7647xOz8 Aquí ejemplo de cómo usar e instalar https://github.com/bahmutov/cypress-recurse

about 4 years ago · Juan Pablo Isaza Relatório

0

Intente cambiar a la afirmación When y declarar esa función fuera de la ejecución:

 When('Should display at least one facility in booking panel', (done) => { recursivelyScroll(done) } function recursivelyScroll(done){ //see implementation below }

No estoy seguro de qué es "Cargando", ¿tal vez tenga que poner comillas dobles?

Además, tenga en cuenta que cypress es asíncrono, luego las secciones scrollTo y luego del código se ejecutan al mismo tiempo en su código, solo use luego después del desplazamiento.

Y cambiaré setTimeout a la función cy wait antes de ejecutar la recursividad, intente con el siguiente código:

 function recursivelyScroll(done) { cy.get(element) .scrollTo('bottom') .then($el => { // If the element contains a loading class, we wait one second and scroll down again if ($el.find(".Loading").length > 0) { cy.wait(1000).then(()=>{ recursivelyScroll(done); }) } else { // We are done waiting, no more loading is needed // write test here done(); } }); }
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