一. webdriver中常用的cookie方法
webdriver中提供了操作cookie的相关方法:
- get_cookies() 获得cookie信息
- add_cookie(cookie_dict) 添加cookie
- delete_cookie(name) 删除特定(部分)的cookie
- delete_all_cookies() 删除所有的cookie
二. add_cookie()的用法
1. 源码中的解释
源码中简略的向我们展示了如何添加cookie,源码如下:
def add_cookie(self, cookie_dict): """ Adds a cookie to your current session. :Args: - cookie_dict: A dictionary object, with required keys - "name" and "value"; optional keys - "path", "domain", "secure", "expiry" Usage: driver.add_cookie({'name' : 'foo', 'value' : 'bar'}) driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/'}) driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure':True}) """ self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})
从中可以看出add_cookie()这个函数有一个参数cookie_dict,它是以字典的形式传入的,字典中必选的键是"name"和"value",可选的键是"path", "domin", "secure", "expiry",其实源码中还漏了一个:"httponly"
2. cookie中键名的含义
- name:cookie的名称
- value:cookie对应的值,动态生成的
- domain:服务器域名
- expiry:Cookie有效终止日期
- path:Path属性定义了Web服务器上哪些路径下的页面可获取服务器设置的Cookie
- httpOnly:防脚本攻击
- secure:在Cookie中标记该变量,表明只有当浏览器和Web Server之间的通信协议为加密认证协议时
三. 实例
第一步:我们先手工做一次登录,打开chrome的调试工具(F12),选择Network—Preserve log—XHR