Недавно я столкнулся со сценарием, в котором компонент пользовательского интерфейса (с запросом 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()
мог быть пойман! Я знаю, что этот код не идеален, но я не уверен насчет более подходящего способа.
Спасибо