Прием оповещений, запускаемых JavaScript
Почему это невозможно (используя InternetExplorerDriver
) принимать оповещения, которые были вызваны явным выполнением JavaScript?
driver.ExecuteJavaScript("myfuncTriggeringAnAlert()");
var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
var alert = wait.Until(ExpectedConditions.AlertIsPresent());
alert.Accept();
Код прекрасно работает, используя ChromeDriver
к сожалению, однако, InternetExplorerDriver
даже не возвращается из ExecuteJavaScript()
вызов. Это просто истекает через 60 секунд.
Есть идеи? Это хорошо известное поведение?
IE11 + IE Driver 2.48.0
1 ответ
Я думаю, что проблема заключается в window.alert
функция JavaScript. В Internet Explorer он ведет себя не так, как в других браузерах. Selenium WebDriver не может справиться с этим должным образом, насколько мне известно, единственное, что вы можете сделать, это закрыть его вручную в IE.
Итак, я бы изменил вашу функцию myfuncTriggeringAnAlert
избегать использования нативных оповещений. Может быть, вы можете использовать пользовательский диалог оповещения, например, здесь.