Обработка (перехват) ошибки ожидания (timed_out) в кипарисе - PullRequest
0 голосов
/ 28 февраля 2020

Недавно я столкнулся со сценарием, в котором компонент пользовательского интерфейса (с запросом XHR /get_data) загружается на страницу через определенное время (скажем, 10 секунд), и это не автоматически c. Поэтому мне нужно перезагрузить страницу (опрос) через 1 секунду и снова нужно ждать XHR-запроса, этот процесс будет продолжаться до тех пор, пока я не получу запрос.

Если это был автоматический вызов c тогда cy.route('/get_data').as('getData').wait('@getData',{requestTimeout: 15000}) сработало бы

Чтобы избежать этого, я сделал пользовательскую функцию (которая не работает):

while (true) {
  try {
    cy.reload()
    cy.wait('@getLogs') //But here this ERROR can't be catched!
    return false
  } catch (e) {
    cy.wait(1000)
  }
}

Я получаю ошибку ниже:

CypressError: Timed out retrying: cy.wait() timed out waiting 2000ms for the 1st request to the route: 'logRequest'. No request ever occurred.

Вышеупомянутая функция могла бы работать, если бы wait() мог быть пойман! Я знаю, что этот код не идеален, но я не уверен насчет более подходящего способа.

Спасибо

...