接受JavaScript触发的警报

时间:2016-11-30 08:22:19

标签: selenium-webdriver selenium-iedriver

为什么不能(使用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

1 个答案:

答案 0 :(得分:0)

我认为问题是JavaScript的window.alert功能。它在Internet Explorer中的行为与在其他浏览器中的行为不同。 Selenium WebDriver无法正确处理它,据我所知,您唯一能做的就是在IE中手动关闭它。

因此,我会更改您的函数myfuncTriggeringAnAlert以避免使用本机警报。也许您可以使用自定义提醒对话框,例如here