Как мне дождаться загрузки данных, прежде чем они отобразят страницу при нажатии на ссылку в Cypress? - PullRequest
0 голосов
/ 26 мая 2020

Приложение было создано таким образом, что вы не можете go напрямую перейти по указанному URL-адресу. Итак, я не могу сделать cy.visit(#specifiedURL) ... Мне нужно сделать это:

cy.get('btn')
  .click()
  .then(() => {
     cy.wait(#alias);
  });

Итак, при нажатии на эту кнопку он перенаправляет меня на новую страницу приложения, но мне нужны данные для загрузить перед рендерингом страницы ...

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Cypress ждет любую команду (click () или type () et c ...) по умолчанию в течение 4 секунд, а метод click () будет вызываться независимо от того, загружена страница или нет, через 4 секунды.

Итак, чтобы дождаться полной загрузки страницы, вам нужно указать cypress, как долго ждать в файле cypress. json, и вы можете указать с помощью "pageLoadTimeout": 10000 в cypress. json

{
  "integrationFolder": "cypress/integration",
  "defaultCommandTimeout": 10000,
  "pageLoadTimeout": 10000
}

Измените на что-то подобное выше, и тогда первый метод cypress get не будет вызываться до 10 секунд pageLoadTimeout, а затем cypress сделает запрос для метода get. Если вы указали c требование таймаутов, просто прочтите документацию здесь https://docs.cypress.io/guides/references/configuration.html#Timeouts

0 голосов
/ 27 мая 2020

Вы можете подождать, пока элемент на следующей странице станет видимым, чтобы гарантировать, что страница загрузилась правильно, если хотите.

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