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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在每次测试之间清除Chrome浏览器状态?相关的知识,希望对你有一定的参考价值。

在我运行的每个测试之前,我想获得一个新的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();

以上是关于如何在每次测试之间清除Chrome浏览器状态?的主要内容,如果未能解决你的问题,请参考以下文章

在每次测试运行之前清除Cursive REPL状态

chrome退出清除历史记录

如何清除chrome浏览器上的缓存

chrome如何清除缓存 chrome清除缓存方法

如何清除chrome浏览器的dns缓存?

完成就绪状态后,清除缓存后,JS函数只会运行一次?