当前位置: 首页 > 知识库问答 >
问题:

无法使用Selenium添加cookie

沈长恨
2023-03-14

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

我有一个脚本(大约一个月运行一次),它在功能上做相同的事情,一个月前就开始工作了。

我将感谢任何关于开始研究为什么这不起作用的地方的建议。

$ 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)

共有2个答案

单于皓轩
2023-03-14

弗洛伦特B.的答案对我也很有用,只是想把它放在正确的地方。

浏览器。饼干。需要在某个浏览器之后调用add。访问(……)

见弗洛伦特的评论:

browser.cookies.add方法绑定到示例中未定义的当前域。您需要先使用driver.get设置域('超文本传输协议://...')

公羊俊德
2023-03-14

你应该先打开网址,然后加载cookie,然后你可以打开下一个网址cookies.you也可以这样打开,如果你想打开同一个网址:

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/")

希望这能有所帮助

 类似资料:
  • 问题内容: 对于下面的内容,我不确定如何解决这种非常简单的使用情况。 我有脚本功能上做了相同的事情,这(我跑大约每月一次) 用 工作作为一个月前。 我会很高兴有任何地方的指针开始研究为什么它不起作用。 问题答案: 您应该先打开url并加载cookie,然后再打开包含cookie的下一个URL。如果要打开相同的url,也可以像这样打开: 希望这可以帮助

  • 使用1.8.9 http://www.cinemas-utopia.org/admin/grilles/toulouse/2015-06-02.pdf

  • 我有很多DynamoDB表要在数据管道中设置备份。我能够通过aws命令行为1或2个表传递一个json文件,这意味着json文件正在工作。 但是,当我传递一个大型JSON(包含50-100个DynamoDB表)来设置DataPipeline时,我会遇到这样的错误: 调用PutPipelineDefinition操作时发生错误(InvalidRequestException):超过Web服务限制:超过

  • 我已经使用Netbeans GUI构建器创建了我的GUI。JList被添加到scrollpane中,如果我硬编码了JList的内容,所有内容都显示得很好。 但是如果我尝试通过动态添加项,则不会出现任何内容。 我只想显示JList中的主题以供视觉使用,其余的都是在后台完成的。