driver.close()没有在Jenkins上工作,整个测试将永远挂起。我正在使用Selenium Grid和Java并使用Chrome驱动程序。
我不想用driver.quit()
。我必须使用driver.close()
。我有两个标签打开,我必须关闭一个。
public static void closeBrowser()
{
try
{
WebDriver testDriver = BrowserFactory.getInstance().getDriver();
if (testDriver != null)
{
testDriver.close();
}
wait.wait(2);
Log.info("Closing the browser");
}
catch (Exception e)
{
Log.info("Cannot close browser");
}
}
这曾经工作并且最近开始发生。
如果没有测试脚本的详细信息,我建议用driver.quit()
替换你想要结束会话的地方;来自Selenium documentation,driver.quit()
将关闭所有浏览器窗口,而driver.close()
将只关闭当前窗口,如果它是当前打开的最后一个窗口,则退出浏览器。
在你的BrowserFactory
类中,getDriver()
方法是使用driver.get()
定义的。这告诉司机得到......什么都没有,这里没有传递URL的参数。这会导致问题吗?
请尝试以下方法:
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL + "w");
此代码将关闭当前打开的选项卡。
我发现关闭窗口的更好的解决方案是:
((JavascriptExecutor) BrowserFactory.getInstance().getDriver()).executeScript( "window.close()" );