如何在Selenium WebDriver中自动清除浏览器缓存?

use*_*341 9 junit4 internet-explorer-8 selenium-webdriver

如何在每次测试运行之前清除浏览器缓存?我在创建驱动程序实例后尝试使用driver.manage().deleteAllCookies();in setUp方法,它适用于firefox,但对于IE没用.IE有什么解决方案请给我..

Fly*_*iew 12

您可以按如下方式设置驱动程序功能:

DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true);
Run Code Online (Sandbox Code Playgroud)

它在IE11上对我有用.

资料来源:http: //selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/ie/InternetExplorerDriver.html


小智 -1

使用java你可以实现:

protected void deleteCookie(String cookieName) {    
    String cookieDomain = CTPropertiesManager.getProperty("site.properties", "site.cookie.domain");
    try {
        //get all cookies
        Cookie cookies[] = request.getCookies();
        Cookie ctCookie=null;
        if (cookies !=null) {
            for(int i=0; i<cookies.length; i++) {
                ctCookie=cookies[i];
                if (ctCookie.getName().trim().equals(cookieName)) {
                    if ( cookieDomain != null ) {
                        ctCookie.setDomain(cookieDomain);
                    }
                    ctCookie.setPath("/ct");
                    ctCookie.setMaxAge(0);
                    response.addCookie(ctCookie);    
                }
            } //end for
        }//end if cookie
    } catch(Exception e) {
        CTLogManager.log(e);
    }
}//end deleteCookie()
Run Code Online (Sandbox Code Playgroud)

删除缓存 您可以创建一个bat 文件,在测试开始之前清除浏览器或应用程序缓存。创建bat文件后,只需在测试开始之前调用您的代码即可。