Cypress — как дождаться готовности приложения?

#cypress

#cypress

Вопрос:

Я хочу подождать, пока приложение, с которым работает Cypress, не будет готово. Похоже, этот код не справляется с задачей — есть идеи?

 before(() => {
    cy.request('GET', baseUrl, { failOnStatusCode: false, timeout: 60000 });
});
 

Ответ №1:

Вы пробовали просто использовать cy.visit() ? Он будет ждать 60 секунд (его можно увеличить) для загрузки страницы.

Если вам нужно использовать request, я бы рекомендовал использовать cypress-wait-until . С его помощью вы можете ждать практически чего угодно. В вашем случае это было бы:

 cy.waitUntil(() => { cy.request('GET', baseUrl, { failOnStatusCode: false, timeout: 60000 }).its('isOkStatusCode')});
 

Приведенный выше код будет ждать, пока запрос не завершится кодом успеха. Я предлагаю вам продлить время ожидания, потому что запуск приложения может занять некоторое время:

 cy.waitUntil(() => { cy.request('GET', baseUrl, { failOnStatusCode: false, timeout: 60000 }).its('isOkStatusCode')},{ timeout: 60000 });