我想测试一个用户会话到期的场景,而不会在网站上引入更改。是否可以使用Selenium调整cookie以强制其过期而不等待标准超时?
答案 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(你的文件路径);