Избегайте использования cy.wait () для ожидания загрузки страницы из-за прерванного запроса на получение кипариса - PullRequest
0 голосов
/ 04 июня 2018

Я запускаю кипарис-тест, который требует загрузки страницы перед тем, как щелкнуть элемент и войти в систему, но по какой-то причине неудачный (и прерванный) запрос GET приводит к тому, что страница загружается вечно, и в итоге время ожидания истекаетесли я не добавлю cy.wait (6000) перед вызовом cy.click ().Мне нужно как-то ждать загрузки страницы без использования cy.wait ().Как это сделать, если я не могу исправить прерванный запрос GET?

enter image description here

  cy.visit(loginUrl)
  cy.url().should('contain', '#/loginPortal')
  cy.wait(6000) //Allows page to load before trying to log in, needs to be removed
  cy.contains('ButtonText').click()

Ответы [ 2 ]

0 голосов
/ 26 августа 2019

Полезно сказать Cypress дождаться, пока в адресной строке появится определенный URL, прежде чем продолжить.

cy.get('#login').click();
cy.location('pathname', {timeout: 20000}).should('include', '/path/to/page');

Это можно использовать для ожидания перенаправлений, которые срабатывают после входа в систему или любого изменения страницы,Это может быть необходимым первым шагом перед использованием cy.wait для запроса XHR, как описывает Руи Маркес.

0 голосов
/ 08 октября 2018

Вы можете заставить Cypress ждать какого-либо конкретного вызова XHR, прежде чем утверждать.Время ожидания определяется конфигурацией responseTimeout .

cy.server();
cy.route('**/api/getData').as('getData');
cy.visit('/home');
cy.wait('@getData');
cy.contains('ButtonText').click()

Рекомендации Cypress: ожидание без необходимости.

Cypressдокументы по ожиданию Alias.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...