python-3.x - 无法使用 Selenium 和 Splinter 添加 cookie

标签 python-3.x selenium cookies splinter

根据下面的内容,我不确定如何解决这个非常简单的使用场景。

我有一个脚本(我大约每月运行一次),它在功能上执行相同的操作,并且使用在一个月前就可以工作。

如果有任何关于开始研究为什么这不起作用的地方的指示,我将不胜感激。

$ python3
Python 3.6.1 (default, Mar 23 2017, 16:49:06)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>> from splinter import Browser
>>> chrome_options = webdriver.ChromeOptions()
>>> browser = Browser('chrome')
>>> browser.cookies.add({'aaa':'bbb'})
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/dummyuser/.virtualenvs/my-virtualenv/lib/python3.6/site-packages/splinter/driver/webdriver/cookie_manager.py", line 28, in add
    self.driver.add_cookie({'name': key, 'value': value})
  File "/Users/dummyuser/.virtualenvs/my-virtualenv/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 708, in add_cookie
    self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})
  File "/Users/dummyuser/.virtualenvs/my-virtualenv/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 256, in execute
    self.error_handler.check_response(response)
  File "/Users/dummyuser/.virtualenvs/my-virtualenv/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unable to set cookie
  (Session info: chrome=62.0.3202.94)
  (Driver info: chromedriver=2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.13.1 x86_64)

最佳答案

您应该先打开该网址,并加载cookie,然后您可以使用cookie打开下一个网址。如果您想打开相同的网址,也可以这样打开:

driver = webdriver.Chrome(executable_path=r'X:\home\xxx\chromedriver.exe')

cookies = pickle.load(open("cookies.pkl", "rb"))
driver.get("https://www.douban.com/")
for cookie in cookies:
    driver.add_cookie(cookie)
driver.get("https://www.douban.com/")

希望这有帮助

关于python-3.x - 无法使用 Selenium 和 Splinter 添加 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47393292/

相关文章:

Django - 如何检查查询集的所有属性?

python - 接受一个列表并返回一个仅包含原始元素的列表的函数?

xpath 选择器中的 C# 变量

javascript - 存储超过 4096 字节的数组一周

python - 从结构不均匀的字符串中提取日期

python - 对象列表的自定义排序

java - 启动 ChromeDriver 时出现异常

java - 如何创建网页元素数组(selenium)

javascript - 如何通过点击获取<li>元素的数据

javascript - 使用保存在 cookie 中的 DOM 元素