Selenium2操作浏览器的Cookies

一、cookies广泛应用于 web技术中,它伴随用户请求在web服务器和 浏览器之间传递.....本文就在selenium WebDriver中如何读取浏览器的cookies以及如何在浏览器中使用已有的cookies 这两个方面而展开。
  二、首先,分析第一个问题:WebDriver中如何读取浏览器的cookies?WebDriver包中已封装好关于Cookies的相关类和方法,通过WebDriver的manage().getCookies()方法
而获取,详见下面代码:
File cookieFile = new File(COOKIE_PATH);
try {
if(cookieFile.exists()){
cookieFile.delete();
}
cookieFile.createNewFile();
System.out.println("Create a new cookie file in:"+System.getProperty("user.dir"));
//将当前的cookies写入指定文件
BufferedWriter bWriter = new BufferedWriter(new FileWriter(cookieFile));
for(Cookie cookie : driver.manage().getCookies()){
bWriter.write(
cookie.getName() + "/"
+ cookie.getValue() + "/"
+ cookie.getPath() + "/"
+ cookie.getExpiry() + "/"
+ cookie.isSecure());
bWriter.newLine();
}
bWriter.flush();
bWriter.close();
} catch (Exception e) {
e.printStackTrace();
}
  三、模拟绕过界面的用户认证,而通过selenium使用已保存的cookies信息直接登录界面,下面是通过selenium在浏览器中添加cookies的代码:
try {
File cooFile = new File(COOKIE_PATH);
if(!cooFile.exists()){
System.out.println("Not found the cookie file in path:" + COOKIE_PATH);
return;
}
BufferedReader bReader = new BufferedReader(new FileReader(cooFile));
String line;
while((line = bReader.readLine()) != null){
String arrCoo[] = line.split("/");
System.out.println(arrCoo.length);
String name="",value="",domain="",path="";
Date expiry = null;
boolean isSecure = false;
for (int i = 0; i < arrCoo.length; i++) {
name = arrCoo[0];
value = arrCoo[1];
domain = arrCoo[2];
path = arrCoo[3];
expiry = arrCoo[4] != "null"?new Date(arrCoo[4]):null;
isSecure = Boolean.parseBoolean(arrCoo[5]);
}
System.out.println(name +"/"+ value + "/" + domain + "/" + path + "/" + expiry + "/" + isSecure);
Cookie cookie = new Cookie(name, value, domain, path, expiry, isSecure);
driver.manage().addCookie(cookie);
}
} catch (Exception e) {
e.printStackTrace();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值