Selenium 脚本在尝试关闭模式对话框时挂起

Selenium 脚本在尝试关闭模式对话框时挂起,selenium,webdriver,selenium-webdriver,Selenium,Webdriver,Selenium Webdriver,尝试关闭浏览器中的模式对话框时出现问题。代码类似于以下代码: 1) driver.switchTo().window(1); 2) driver.close(); 3) driver.switchTo().window(0); 问题是代码执行挂起在第2行。我相信这是因为浏览器(无网络)对话框显示“您正在查看的网页正在试图关闭窗口…”。手动关闭确认对话框后,脚本将继续运行。所以,我想知道是否有人对如何

尝试关闭浏览器中的模式对话框时出现问题。代码类似于以下代码:

                1) driver.switchTo().window(1);
                2) driver.close();
                3) driver.switchTo().window(0);
问题是代码执行挂起在第2行。我相信这是因为浏览器(无网络)对话框显示“您正在查看的网页正在试图关闭窗口…”。手动关闭确认对话框后,脚本将继续运行。所以,我想知道是否有人对如何处理这个问题有什么想法。 我使用带有webdriver 2.24.1的IE8浏览器。

如果A.J.的解决方案:

driver.close();
driver.switchTo().alert().accept();
我认为这不管用。在解决此问题之前,这里为您提供了一个简单的解决方案,它应该会抑制对话框:

((JavascriptExecutor)driver).executeScript("window.onbeforeunload = function(){};");
driver.close();

谢谢你的帮助!是否通过执行以下JS解决了此问题

((JavascriptExecutor)driver).executeScript("window.open(\"\", \"_self\");window.close();");

您是否尝试将driver.switchTo().alert()放在driver.close()之后?我不确定这是否有效,但值得一试。另外,是否必须关闭浏览器?如果在不关闭窗口(1)的情况下切换到窗口(0),itr会影响您的测试吗?如果不手动关闭浏览器警报(它只是挂起),则不会执行第2行之后的代码。因此,没有什么区别。是的,必须关闭浏览器窗口1。我们的想法是在开始新测试之前关闭所有不必要的窗口和对话框(主窗口除外)。使用以下代码关闭模式浏览器弹出窗口(没有出现确认对话框):((JavascriptExecutor)Session.getDriver()).executeScript(“window.close();”);但在单独的浏览器窗口中仍然不可能做到这一点。确认对话框仍然出现。。。相同的代码挂起(需要手动关闭确认对话框)。