为什么不能(使用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驱动程序2.48.0
答案 0 :(得分:0)
我认为问题是JavaScript的window.alert
功能。它在Internet Explorer中的行为与在其他浏览器中的行为不同。 Selenium WebDriver无法正确处理它,据我所知,您唯一能做的就是在IE中手动关闭它。
因此,我会更改您的函数myfuncTriggeringAnAlert
以避免使用本机警报。也许您可以使用自定义提醒对话框,例如here。