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]表示他的第一个元素也就是一个字典