selenium获取或添加cookie

先简单说一下什么是sid,ZGJ的玩法是打开web端首页就会生成一个sid,服务器会记着这个sid的状态。有以下两个情况:

       1)假如该会话(sid)操作了退出登录,其他人使用该sid,服务器也会认为他是退出登录的状态

       2)假如该会话(sid)登录成功后,关闭了浏览器,此时服务器而言该会话还是登录状态,那么就可以通过传入该sid的方式来保持登录状态

 

以下是java的简单玩法

Set<Cookie> cookie= chrome.manage().getCookies();

sid = chrome.manage().getCookieNamed("sid").getValue();

Cookie cookie = new Cookie("sid", sid);
gecko.manage().addCookie(cookie);
gecko.navigate().refresh();

 

以下是python的简单玩法

self.dr.get('http://10.0.3.209:10085')

self.cookies = self.dr.get_cookies()  

这里获取到的cookie是一个list内嵌一个字典:[{''asf'':"sdafasdf","value":"sdf-esfa-efe5-sdf5sdf-sdfa5sdf-sdf"}]

将self.sid = self.cookies[0]['value']保存到txt文件

后面再修改cookie的值来实现登录:

self.dr.get('http://10.0.3.209:10085')
self.cookies = self.dr.get_cookies()
self.cookies[0]['value'] = self.get_sid()  #修改sid的值为前面已经登录的sid
self.dr.delete_all_cookies()                  #删除掉所有cookie
self.dr.add_cookie(self.cookies[0])      写入新的cookie,注意如果直接写入cookies会报错,因为他是一个list,cookies[0]表示他的第一个元素也就是一个字典

 

posted on 2018-11-01 10:32  愚哥  阅读(425)  评论(0)    收藏  举报

导航