Я работаю с приложением, которое довольно нестабильно с точки зрения времени загрузки данных. Я уже установил тайм-аут waitFor на 15 с и больше не хочу его увеличивать. Мои тесты выполняются в CI, и часто мне приходится перезапускать все, потому что ОДИН элемент не загружен вовремя.
Также я не хочу использовать некоторые bail
методы или повторить весь тест.
Моя идея состоит в том, чтобы дождаться элемента, и если элемент с локатором .loader
все еще присутствует на странице, я хочу повторить ожидание.
Так что я ищу лучшее способ реализовать это (возможно, обещание?)
function waitWithRetry(elementLocator, retryCount) {
while (retryCount > 0) {
try {
$(`${elementLocator}`).waitForDisplayed();
} catch (e) {
if ($('.loader').isDisplayed()) {
retryCount--;
} else {
throw new Error(e);
}
}
}
}