一. webdriver中常用的cookie方法 webdriver中提供了操作cookie的相关方法:
二. add_cookie()的用法 1. 源码中的解释 源码中简略的向我们展示了如何添加cookie,源码如下:
从中可以看出add_cookie()这个函数有一个参数cookie_dict,它是以字典的形式传入的,字典中必选的键是"name"和"value",可选的键是"path", "domin", "secure", "expiry",其实源码中还漏了一个:"httponly" 2. cookie中键名的含义
三. 实例 第一步:我们先手工做一次登录,打开chrome的调试工具(F12),选择Network—Preserve log—XHR 第二步:点击登录,打开调试工具中的login,可以看到右边Response Headers下面就出现了服务器返回给浏览器的cookie 第三步:python代码的实现,最容易出现问题的可能是这一步
运行结果后发现报错了:Message: unable to set cookie
第四步:修改代码,解决问题 "技术提示:必须首先加载网站,这样Selenium 才能知道cookie 属于哪个网站,即使加载网站的行为对我们没任何用处" 只需要给原来的代码加上一句(红色部分),这个url填"/User/login.html"或"/Main/index.html"都行,只要是同一个domain就行,浏览器会自动跳转到登录页面:
再次运行,发现已经成功了 四. 获取cookie的方法不止一种 cookie的可以通过浏览器调试来获取,当然也可以通过抓包工具获取,那么能不能用代码来获取呢?答案是肯定的 参照上面那篇博文,我们完成以下代码,第一次通过driver1发送用户名和密码登录,获取cookie并保存,第二次driver2添加driver1保存的cookie,达到绕过登录的目录
注意:cookie有两种,一种是会话级别的,一种是有有效期的,会话级别的cookie就不能用add_cookie的方法了,因为一次会话过程(从打开浏览器到关闭浏览器,断开连接)结束后它就失效了 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。 |
|
来自: wenxuefeng360 > 《待分类1》