Исходные данные: автотест на java selenium. Столкнулся с ситуацией что после клика происходит долгая обработка данных и Selenium падает по таймауту. Перелопатил интернет, перепробовал все ожидания — явные, не явные и все другие включая банальную паузу:
driver.manage().timeouts().setScriptTimeout(180, TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(180, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(180, TimeUnit.SECONDS);
Ничего из этого не помогает. Автотест висит на клике, не переходит к следующей команде, а по истечению времени ожидания — падает.
Решение проблемы пришло с неожиданной для меня стороны и оказалось, как и все гениальное ), простым.
try {
driver.findElement(By.xpath("//*[@id='a_do_import']")).click();
} catch (Exception exception) {
logger.info("Exception was catch, is waiting 2 min.");
new Pause("120000").act(driver, context, reporter);
logger.info("Reload page.");
...
}
Ловим и обрабатываем ошибку сами.