web-dev-qa-db-fra.com

Dans Cypress, comment puis-je attendre le chargement d'une page?

Ne le dites à personne, mais notre application n'est pas encore d'une seule page. Je peux attendre une requête XHR donnée en donnant un alias à l'itinéraire, mais comment puis-je attendre que la navigation soit terminée et que le navigateur soit en toute sécurité sur une nouvelle page?

7
bbsimonbb

Vous pouvez ajouter des assertions à l'intérieur:

cy.click('#someButtonToNavigateOnNewPage');

cy.location('pathname', {timeout: 60000})
  .should('include', '/newPage');

cy.click('#YouAreOnNewPage');

Vous pouvez modifier le délai d'expiration par défaut - par défaut, c'est 4000 ms (4 secondes) - pour vous assurer que l'utilisateur a parcouru la page. J'ai mis un grand nombre ici - 60 000 ms - parce que je suis sûr que 99% des utilisateurs partiront s'ils n'ont pas de page chargée après 1 min.

8
Igor Shubovych