Java Selenium WebDriver испытывает некоторые трудности при обращении с элементами, при клике на которых открывается PopUp (всплывающее окно).
Так например, если сделать обычный клик webelement.click() по такому элементу, то тест зависнет и не упадет ни по таймауту ни по каким другим условиям. Можно лишь закрыть браузер вручную или остановить процесс. Такой эффект появляется только для некоторых сочетаний версий браузера-вебдрайвера-сайта, но тем не менее для меня в свое время это было огромной проблемой.
Чтобы клик проходил нормально, и ничего не зависало, можно нажимать на кнопку с помощью следующего джаваскрипта:
WebElement element;
//...
JavascriptExecutor executor = (JavascriptExecutor) getDriver();
executor.executeScript("var el=arguments[0]; setTimeout(function() { el.click(); }, 100);", element);
Эта функция точно также кликнет по элементу, как и обычный click().
Так например, если сделать обычный клик webelement.click() по такому элементу, то тест зависнет и не упадет ни по таймауту ни по каким другим условиям. Можно лишь закрыть браузер вручную или остановить процесс. Такой эффект появляется только для некоторых сочетаний версий браузера-вебдрайвера-сайта, но тем не менее для меня в свое время это было огромной проблемой.
Чтобы клик проходил нормально, и ничего не зависало, можно нажимать на кнопку с помощью следующего джаваскрипта:
WebElement element;
//...
JavascriptExecutor executor = (JavascriptExecutor) getDriver();
executor.executeScript("var el=arguments[0]; setTimeout(function() { el.click(); }, 100);", element);
Эта функция точно также кликнет по элементу, как и обычный click().