前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Selenium:添加Cookie的方法

Selenium:添加Cookie的方法

作者头像
新码农
修改2020-12-25 11:24:42
17.6K0
修改2020-12-25 11:24:42
举报
文章被收录于专栏:新码农博客新码农博客

导读

详解selenium添加cookie的方法。

一、webdriver中常用的cookie方法

webdriver中提供了操作cookie的相关方法:

代码语言:txt
复制
# 获得cookie信息
get_cookies()

# 添加cookie
add_cookie(cookie_dict)

# 删除特定(部分)的cookie
delete_cookie(name)

# 删除所有的cookie
delete_all_cookies()

二、add_cookie()的用法

1.源码中的解释

源码中简略的向我们展示了如何添加cookie,源码如下:

代码语言:txt
复制
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中键名的含义

代码语言:txt
复制
name        cookie的名称
value       cookie对应的值,动态生成的
domain      服务器域名
expiry      Cookie有效终止日期
path        Path属性定义了Web服务器上哪些路径下的页面可获取服务器设置的Cookie
httpOnly    防脚本攻击
secure      在Cookie中标记该变量,表明浏览器和服务器之间的通信协议为加密认证协议。

三、实例

1.第一次测试

代码语言:txt
复制
from selenium import webdriver

driver = webdriver.Chrome()
cookies = {"value": "value", "name": "name"}
driver.add_cookie(cookie_dict=cookies)
driver.get("https://www.ketangpai.com/Main/index.html")

运行结果后发现报错了:Message: unable to set cookie。

解决方案:必须先加载网站,这样Selenium 才能知道cookie 属于哪个网站。

2、第二次测试

代码语言:txt
复制
from selenium import webdriver

driver = webdriver.Chrome()
cookies = {"value": "value", "name": "name"}
driver.get("https://www.ketangpai.com/User/login.html")
driver.add_cookie(cookie_dict=cookies)
driver.get("https://www.ketangpai.com/Main/index.html")

运行成功。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年4月16日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导读
    • 一、webdriver中常用的cookie方法
      • 二、add_cookie()的用法
        • 三、实例
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档