如何在每次测试之间清除Chrome浏览器状态?

时间:2019-02-16 00:05:42

标签: java selenium selenium-chromedriver

我想在每次运行测试之前获取一个新的硒铬浏览器实例。我可以通过在每次测试后执行driver.quit()然后初始化一个新实例来实现此目的,但这既耗时又耗费资源。似乎需要一种更好的方法,但是我一直无法在网上找到任何东西。

这就是我现在正在做的:

@AfterMethod
public void shutDown(){
   seleniumDriver.quit();
}

@BeforeMethod
public void start(){
    seleniumDriver = SeleniumExtensions.createDefaultWebDriver();
}

最终,我不必退出并获取新的instancem,而是可以执行以下操作,其中getFreshInstance清除状态(cookie,缓存,会话等):

 @AfterMethod
    public void cleanDriver(){
       seleniumDriver.getFreshInstance();
    }

1 个答案:

答案 0 :(得分:2)

对于Cookie:

seleniumDriver.manage().deleteAllCookies();

Selenium本身不提供删除缓存的方法。对于this blog post,您可以尝试执行以下操作清除缓存:

WebElement clearDataBtn = driver.findElement(By.cssSelector("* /deep/ #clearBrowsingDataConfirm"));
if(sync.isElementPresent(By.cssSelector("* /deep/ #clearBrowsingDataConfirm"))){
System.out.println("Clear button found");
clearDataBtn.click();
}