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

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

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 Report

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 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!