如何在Selenium测试中清除浏览器缓存

时间:2012-03-05 06:05:17

标签: java selenium selenium-webdriver browser-cache

我正在使用WebDriver运行我的Selenium测试。我正在用一些循环重复测试,所以现在我想在JAVA中开始新的测试之前清除缓存。

@Test
public void ffAndIe() throws InterruptedException {
    int i = 0;
    while(i < 5000){

        driver.get("http://dit-map.appspot.com/");
        Thread.sleep(15000);
        driver.get("http://dit- map.appspot.com/#home:zoom=7&lat=37.04&lng=25.05&display=weather");
        Thread.sleep(15000);
        driver.get("http://dit-map.appspot.com/#home:zoom=9&lat=37.55&lng=23.83&display=weather,wind");
        Thread.sleep(10000);
        driver.get("http://dit-map.appspot.com/#home:zoom=9&lat=37.84&lng=23.22&display=weather,wind,cloud");
        Thread.sleep(10000);
        driver.get("http://dit-map.appspot.com/?lang=en#home:zoom=10&lat=38.13&lng=22.59&display=weather,wind,meteogram");
        Thread.sleep(10000);
        i++;
    }
}

在这个while循环中我要做的第一件事是清除我的CACHE(IE,MOZILLA&amp; CHROME)

任何想法我怎么能实现这个目标?

由于

3 个答案:

答案 0 :(得分:14)

目前,无法通过Web驱动程序API清除缓存。但是,如果您每次都可以启动浏览器的新实例,则应在FFChrome中清除缓存,因为每次启动都会创建新的配置文件。

Selenium问题跟踪器中issue #40 (Clear cache)的评论列出了无法创建新浏览器实例时问题的两种可能解决方案:

  1. Clear the IE cache来自命令行
  2. Disable the FF cache使用自定义配置文件
  3. HTH

答案 1 :(得分:0)

DT_IE_AGENT_ACTIVE = true激活加载项,以便从当前浏览器会话中收集数据

希望有所帮助

答案 2 :(得分:0)

我在python中使用了这行代码来做到这一点,似乎每次都清除缓存(Internet Explorer)

capab = DesiredCapabilities.INTERNETEXPLORER

capab.clear()