本人使用的版本是

python3.7

selenium3.14.1

macOS10.13.3

另外是在谷歌浏览器做的实验

下面看代码:

  1. 我想要添加一个name为MUSIC_U的cookie,运行后出现错误selenium.common.exceptions.WebDriverException: Message: unable to set

    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    brguge=webdriver.Chrome()#声明驱动对象
    try:print (brguge.get_cookies())cookie = {'domain': '.bilibili.com', 'expiry': 1540118011, 'httpOnly': False, 'name': 'MUSIC_U', 'path': '/', 'secure': False, 'value': '261e3a119ae77340f902f8c5c9ec95135053be85f4706fa6985046c7a33d7409c8f2a7d72751daae6c35ab6dff831cdadea9c0c5cfc323bb7955a739ab43dce1'}brguge.add_cookie(cookie)print ("# add # ",brguge.get_cookies()) finally:brguge.close()#关闭谷歌浏览器
    []
    Traceback (most recent call last):File "/Users/birenjianmo/Desktop/python3/webtest2.py", line 11, in <module>brguge.add_cookie(cookie)File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 894, in add_cookieself.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in executeself.error_handler.check_response(response)File "/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_responseraise exception_class(message, screen, stacktrace)
    selenium.common.exceptions.WebDriverException: Message: unable to set cookie(Session info: chrome=69.0.3497.100)(Driver info: chromedriver=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8),platform=Mac OS X 10.13.3 x86_64)

    从报错来看虽然知道是cookie出错了,但是好像并没有提供什么有用的信息

  2. 接着我尝试先请求一下网站,看看cookie的结构,于是加了一行代码,结果发现竟然成功添加了MUSIC_U

    brguge.get('https://www.bilibili.com/video/av32022817/?spm_id_from=333.334.chief_recommend.17')#发送get请求
    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    brguge=webdriver.Chrome()#声明驱动对象
    try:brguge.get('https://www.bilibili.com/video/av32022817/?spm_id_from=333.334.chief_recommend.17')#发送get请求print (brguge.get_cookies())cookie = {'domain': '.bilibili.com', 'expiry': 1540118011, 'httpOnly': False, 'name': 'MUSIC_U', 'path': '/', 'secure': False, 'value': '261e3a119ae77340f902f8c5c9ec95135053be85f4706fa6985046c7a33d7409c8f2a7d72751daae6c35ab6dff831cdadea9c0c5cfc323bb7955a739ab43dce1'}brguge.add_cookie(cookie)print ("# add # ",brguge.get_cookie("MUSIC_U")) finally:brguge.close()#关闭谷歌浏览器
    [{'domain': '.bilibili.com', 'expiry': 1632136843.835492, 'httpOnly': False, 'name': 'buvid3', 'path': '/', 'secure': False, 'value': '39A1DFA0-A52D-467A-95B9-3EE7B9CE156D163038infoc'}, {'domain': '.bilibili.com', 'expiry': 1540120843, 'httpOnly': False, 'name': 'finger', 'path': '/', 'secure': False, 'value': '14bc3c4e'}]
    # add #  {'domain': '.bilibili.com', 'expiry': 1540118011, 'httpOnly': False, 'name': 'MUSIC_U', 'path': '/', 'secure': True, 'value': '261e3a119ae77340f902f8c5c9ec95135053be85f4706fa6985046c7a33d7409c8f2a7d72751daae6c35ab6dff831cdadea9c0c5cfc323bb7955a739ab43dce1'}
    

    虽然cookie是加上去了,但是我在想是不是只要随便先请求一个网站就可以添加cookie了?

  3. 这次我们不请求bilibili,而是请求baidu,然后添加bilibili的cookie,看看能不能添加成功

    # -*- coding: utf-8 -*-
    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.wait import WebDriverWait
    import traceback
    brguge=webdriver.Chrome()#声明驱动对象
    try:brguge.get('https://www.baidu.com/')#发送get请求print (brguge.get_cookies())cookie = {'domain': '.bilibili.com', 'expiry': 1540118011, 'httpOnly': False, 'name': 'MUSIC_U', 'path': '/', 'secure': False, 'value': '261e3a119ae77340f902f8c5c9ec95135053be85f4706fa6985046c7a33d7409c8f2a7d72751daae6c35ab6dff831cdadea9c0c5cfc323bb7955a739ab43dce1'}brguge.add_cookie(cookie)print ("# add # ",brguge.get_cookie("MUSIC_U"))
    except:print(traceback.format_exc())
    finally:brguge.close()#关闭谷歌浏览器
    [{'domain': '.baidu.com', 'httpOnly': False, 'name': 'H_PS_PSSID', 'path': '/', 'secure': False, 'value': '1433_21108_20930'}, {'domain': '.baidu.com', 'expiry': 3685012823.861422, 'httpOnly': False, 'name': 'BIDUPSID', 'path': '/', 'secure': False, 'value': 'E9BEFFB7740A6175A9660285BC43D724'}, {'domain': '.baidu.com', 'expiry': 3685012823.861463, 'httpOnly': False, 'name': 'PSTM', 'path': '/', 'secure': False, 'value': '1537529176'}, {'domain': '.baidu.com', 'expiry': 1537615577.642583, 'httpOnly': False, 'name': 'BDORZ', 'path': '/', 'secure': False, 'value': 'B490B5EBF6F3CD402E515D22BCDA1598'}, {'domain': 'www.baidu.com', 'expiry': 1538393177, 'httpOnly': False, 'name': 'BD_UPN', 'path': '/', 'secure': False, 'value': '123253'}, {'domain': 'www.baidu.com', 'httpOnly': False, 'name': 'BD_HOME', 'path': '/', 'secure': False, 'value': '0'}, {'domain': 'www.baidu.com', 'expiry': 2483609140.861528, 'httpOnly': False, 'name': 'delPer', 'path': '/', 'secure': False, 'value': '0'}, {'domain': '.baidu.com', 'expiry': 3685012823.861343, 'httpOnly': False, 'name': 'BAIDUID', 'path': '/', 'secure': False, 'value': 'E9BEFFB7740A6175A9660285BC43D724:FG=1'}]
    # add #  None

    实验结果是bilibili的cookie未添加进去,但是没有报错

通过上面的实验,可以总结两点

  1. 如果未先请求网站而直接添加cookie会报错,应该是漏了初始化的哪一步,希望大神指出
  2. 如果未请求cookie指定的网站直接添加cookie,则不会生效,cookie无法添加

selenium.common.exceptions.WebDriverException: Message: unable to set相关推荐

  1. selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilitie

    selenium.common.exceptions.WebDriverException: Message: Unable to find a matching set of capabilitie ...

  2. selenium.common.exceptions.WebDriverException: Message: ‘chromedriver‘ executable needs to bein PATH

    使用Selenium模拟浏览器访问淘宝首页,出现报警 from selenium import webdriver import timebrowser = webdriver.Chrome() br ...

  3. selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’解决

    selenium.common.exceptions.WebDriverException: Message: 'chromedriver'解决: https://blog.csdn.net/weix ...

  4. 已解决 selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element 找不到元素的问题

    场景 使用selenium的find_element_by_xpath()函数报错:selenium.common.exceptions.NoSuchElementException: Message ...

  5. 已解决selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary

    已解决selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary ...

  6. WebDriverException( selenium.common.exceptions.WebDriverException: Message: ‘chromedriver‘ executabl

    WebDriverException( selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executabl ...

  7. 【解决报错问题:selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurr】

    运行Appium报错: selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occ ...

  8. 报错解决:selenium.common.exceptions.WebDriverException: Message: An unknown server-side error

    报错代码 from appium import webdriver from selenium.webdriver.support.ui import WebDriverWaitdesired_cap ...

  9. 在进行天猫商品数据爬虫时遇到selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe'

    selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in ...

最新文章

  1. macos nginx php mysql_mac环境下搭建nginx + php + mysql开发环境
  2. Javascript创建对象的几种方式?
  3. C#decimal数据类型
  4. java围棋毕业设计_(毕业论文)围棋游戏的设计与实现.doc
  5. 全国首家百度大脑创新体验中心启动,中关村创业大街AI产业创新生态再升级...
  6. 虚拟机中安装Synology
  7. 猜年龄、猜数字的python程序
  8. JSP实战项目教程|基于JSP的学生请假系统开发视频教程
  9. 转载:每年考证时间表
  10. spring cloud学习-什么是Spring Cloud Eureka?
  11. 什么索引?索引的作用是什么?索引运用实例
  12. android 查看路由器ip,如何查看路由器ip地址进入登录页面
  13. [Python]经典例题——解一元二次方程
  14. 我的2017年文章汇总——机器学习篇
  15. react里子父通信和父子通信的实现
  16. 高并发系统设计十六(消息队列削峰)
  17. 什么是VMware VSP和VTSP
  18. 盘点 | 2017年,哪些黑科技改变了我们的生活?
  19. 文件太大无法复制到U盘
  20. ESP8266通过WIFI获取IP定位信息

热门文章

  1. 2018个人总结《再见2018,你好2019》
  2. 零基础学Python 掌握这些让你一个月上手做项目
  3. 中国有句俗语叫“三天打鱼两天晒网”。 某人从2010年1月1日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中是“打鱼”还是“晒网”
  4. js中时间戳的各种用法
  5. 2010年SQLite学习笔记之一
  6. 13、DA数模转换(PWM输出)
  7. 取得最高系统管理员权限的有效方法
  8. 历代iOS设备屏幕分辨率
  9. SpringCloud实用篇02
  10. UE4制作尸潮爬墙学习笔记