selenium.common.exceptions.WebDriverException: Message: unable to set
本人使用的版本是
python3.7
selenium3.14.1
macOS10.13.3
另外是在谷歌浏览器做的实验
下面看代码:
我想要添加一个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出错了,但是好像并没有提供什么有用的信息
接着我尝试先请求一下网站,看看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了?
这次我们不请求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未添加进去,但是没有报错
通过上面的实验,可以总结两点
- 如果未先请求网站而直接添加cookie会报错,应该是漏了初始化的哪一步,希望大神指出
- 如果未请求cookie指定的网站直接添加cookie,则不会生效,cookie无法添加
selenium.common.exceptions.WebDriverException: Message: unable to set相关推荐
- 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 ...
- selenium.common.exceptions.WebDriverException: Message: ‘chromedriver‘ executable needs to bein PATH
使用Selenium模拟浏览器访问淘宝首页,出现报警 from selenium import webdriver import timebrowser = webdriver.Chrome() br ...
- selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’解决
selenium.common.exceptions.WebDriverException: Message: 'chromedriver'解决: https://blog.csdn.net/weix ...
- 已解决 selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element 找不到元素的问题
场景 使用selenium的find_element_by_xpath()函数报错:selenium.common.exceptions.NoSuchElementException: Message ...
- 已解决selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary
已解决selenium.common.exceptions.WebDriverException: Message: unknown error: cannot find Chrome binary ...
- WebDriverException( selenium.common.exceptions.WebDriverException: Message: ‘chromedriver‘ executabl
WebDriverException( selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executabl ...
- 【解决报错问题:selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occurr】
运行Appium报错: selenium.common.exceptions.WebDriverException: Message: An unknown server-side error occ ...
- 报错解决:selenium.common.exceptions.WebDriverException: Message: An unknown server-side error
报错代码 from appium import webdriver from selenium.webdriver.support.ui import WebDriverWaitdesired_cap ...
- 在进行天猫商品数据爬虫时遇到selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe'
selenium.common.exceptions.WebDriverException: Message: 'chromedriver.exe' executable needs to be in ...
最新文章
- macos nginx php mysql_mac环境下搭建nginx + php + mysql开发环境
- Javascript创建对象的几种方式?
- C#decimal数据类型
- java围棋毕业设计_(毕业论文)围棋游戏的设计与实现.doc
- 全国首家百度大脑创新体验中心启动,中关村创业大街AI产业创新生态再升级...
- 虚拟机中安装Synology
- 猜年龄、猜数字的python程序
- JSP实战项目教程|基于JSP的学生请假系统开发视频教程
- 转载:每年考证时间表
- spring cloud学习-什么是Spring Cloud Eureka?
- 什么索引?索引的作用是什么?索引运用实例
- android 查看路由器ip,如何查看路由器ip地址进入登录页面
- [Python]经典例题——解一元二次方程
- 我的2017年文章汇总——机器学习篇
- react里子父通信和父子通信的实现
- 高并发系统设计十六(消息队列削峰)
- 什么是VMware VSP和VTSP
- 盘点 | 2017年,哪些黑科技改变了我们的生活?
- 文件太大无法复制到U盘
- ESP8266通过WIFI获取IP定位信息
热门文章
- 2018个人总结《再见2018,你好2019》
- 零基础学Python 掌握这些让你一个月上手做项目
- 中国有句俗语叫“三天打鱼两天晒网”。 某人从2010年1月1日起开始“三天打鱼两天晒网”, 问这个人在以后的某一天中是“打鱼”还是“晒网”
- js中时间戳的各种用法
- 2010年SQLite学习笔记之一
- 13、DA数模转换(PWM输出)
- 取得最高系统管理员权限的有效方法
- 历代iOS设备屏幕分辨率
- SpringCloud实用篇02
- UE4制作尸潮爬墙学习笔记