在我运行的每个测试之前,我想获得一个新的selenium chrome浏览器实例。我可以通过在每次测试之后执行driver.quit()然后初始化新实例来实现这一点,但这是耗时且资源密集的。似乎需要更好的方式,但我无法在网上找到任何东西。
这就是我现在正在做的事情:
@AfterMethod
public void shutDown(){
seleniumDriver.quit();
}
@BeforeMethod
public void start(){
seleniumDriver = SeleniumExtensions.createDefaultWebDriver();
}
最终,我没有退出并获得新的实例,而是能够做到这样的事情,其中getFreshInstance清除状态(cookie,缓存,会话等):
@AfterMethod
public void cleanDriver(){
seleniumDriver.getFreshInstance();
}
饼干:
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();
}