是否可以使用Selenium过期cookie?

时间:2012-03-02 22:19:01

标签: selenium

我想测试一个用户会话到期的场景,而不会在网站上引入更改。是否可以使用Selenium调整cookie以强制其过期而不等待标准超时?

1 个答案:

答案 0 :(得分:2)

解决方案1:使用Java脚本

String jScript_ = "" +
"Response.Cache.SetExpires(DateTime.Parse(DateTime.Now.ToString()))\n" +
"Response.Cache.SetCacheability(HttpCacheability.Private)\n" +
"Response.Cache.SetNoStore()\n" +
"Response.AppendHeader("Pragma", "no-cache")";

selenium.getEval(jScript_);

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

解决方案3:使用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);
    }
   }
  }
 } catch(Exception e){
  CTLogManager.log(e);
 }
}

解决方案4: 我创建了一个方法并放在代码

下面

driver.manage()deleteAllCookies();

sel.refresh();

driver.navigate()。to(你的文件路径);