Но теперь мои исполнения совершенно непоследовательны. Сценарий завершается в случайное время, обычно до истечения моего тайм-аута в 60 секунд, и ошибка заключается в том, что элемент не найден (я почти уверен, что мои локаторы верны). И это становится еще более странным, потому что если я добавлю неявное ожидание обратно в код и запущу сценарий с двумя типами ожидания, все будет работать нормально. Оба моих ожидания настроены с тайм-аутом 60 секунд.
Мое неявное ожидание (среди других вариантов):
Код: Выделить всё
chromeOptions.addArguments("--start-maximized");
chromeOptions.setPageLoadStrategy(PageLoadStrategy.NORMAL);
chromeOptions.setExperimentalOption("prefs", prefs);
chromeOptions.setImplicitWaitTimeout(Duration.ofSeconds(60));
chromeOptions.setExperimentalOption("useAutomationExtension", false);
chromeOptions.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
Код: Выделить всё
Wait wait = new FluentWait(Context.webdriver)
.withTimeout(Duration.ofSeconds(60))
.pollingEvery(Duration.ofMillis(100));
wait.until(driver -> Objects.equals(((JavascriptExecutor) driver).executeScript("return document.readyState"), "complete"));
Идеальная ситуация — использовать только явный ожидания, но в настоящее время мне нужно использовать как неявное, так и явное ожидание в моем проекте, чтобы все работало гладко.
Подробнее здесь: https://stackoverflow.com/questions/793 ... is-present
Мобильная версия