Java IE+;Selenium:有没有办法在IE中以编程方式禁用弹出窗口拦截器

Java IE+;Selenium:有没有办法在IE中以编程方式禁用弹出窗口拦截器,java,internet-explorer,selenium-webdriver,Java,Internet Explorer,Selenium Webdriver,每次我进入新的IE浏览器运行Selenium自动化脚本来处理弹出窗口时,我都需要手动禁用IE设置中的弹出窗口阻止程序选项。有没有一种方法可以通过使用某些功能或其他东西以编程方式禁用IE弹出窗口拦截器?是的,您可以在Ruby binding WebDriver中这样使用: caps = Selenium::WebDriver::Remote::Capabilities.internet_explorer('ie.unexpectedAlertBehaviour' => 'accept',

每次我进入新的IE浏览器运行Selenium自动化脚本来处理弹出窗口时,我都需要手动禁用IE设置中的弹出窗口阻止程序选项。有没有一种方法可以通过使用某些功能或其他东西以编程方式禁用IE弹出窗口拦截器?

是的,您可以在Ruby binding WebDriver中这样使用:

 caps = Selenium::WebDriver::Remote::Capabilities.internet_explorer('ie.unexpectedAlertBehaviour' => 'accept', 'ignoreProtectedModeSettings' => true)
 @driver = Selenium::WebDriver.for(:ie, :desired_capabilities => caps)

让我知道这是否对你有效!否则更改
“ie.unexpectedAlertBehaviour”=>“disease”
任何一个都应该工作

我们必须修改注册表值,以便能够操作ie中的弹出窗口阻止程序。注册表信息如下所示:

注册表位置:HKEY\U当前用户\U软件\Microsoft\Internet Explorer\New Windows

注册表值名称:PopupMgr

注册表值数据:否[关闭弹出窗口阻止程序]和是[打开弹出窗口阻止程序]

如果您使用Java并希望以编程方式实现它,以下代码片段肯定会对您有所帮助:

String cmd = "REG ADD \"HKEY_CURRENT_USER\\Software\\Microsoft\\Internet Explorer\\New Windows\" /F /V \"PopupMgr\" /T REG_SZ /D \"no\"";
try {
    Runtime.getRuntime().exec(cmd);
} catch (Exception e) {
    System.out.println("Error ocured!");
}

希望有帮助

感谢@mcbuddy的回复。不幸的是,设置“ie.unexpectedAlertBehaviour”对我不起作用。通过进一步调查,我发现这是为了自动处理意外警报,这不是我的本意。相反,我想以编程方式关闭弹出窗口阻止程序。最后,我可以通过设置注册表值来实现它。请按照我的答案贴在下面。