【问题标题】:selenium ChromeWebDriver: unable to set cookieselenium ChromeWebDriver:无法设置 cookie
【发布时间】:2019-08-08 14:42:08
【问题描述】:

我正在开发一个网络爬虫,它需要使用 selenium-chrome 来呈现 javascript。大多数功能在使用 docker selenium/standalone chrome 图像时运行良好,但是当切换到 selenium 网格以启用并行数据收集时,cookie 无法添加到浏览器中。有问题的 cookie 是为了禁用产品网站上的年龄检查,所以没什么复杂的。

版本:

3.141.59-钛

硒:3.141.59 谷歌浏览器:76.0.3809.87 铬驱动程序:76.0.3809.68 火狐浏览器:68.0.1 GeckoDriver:0.24.0

python 3.6.9 硒 3.141.0 - 来自 pypi

我尝试了各种不同的 cookie,并尝试了不同版本的 selenium docker 网格,但没有运气。

driver = webdriver.Remote(command_executor='http://selenium-hub:4444/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME)
try:
    driver.get("https://www.google.com") 
    driver.add_cookie(cookie_dict={'name':'foo','value':'bar'}))
finally:
    driver.quit()

这是日志中显示的错误

File "testSelenium.py", line 39, in <module>
print(driver.add_cookie(cookie_dict={'name':'bob','value':'boo','path':'/'}))
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 894, in add_cookie
self.execute(Command.ADD_COOKIE, {'cookie': cookie_dict})
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.UnableToSetCookieException: Message: unable to set cookie
(Session info: chrome=76.0.3809.87)

【问题讨论】:

    标签: python selenium-webdriver docker-compose selenium-chromedriver python-3.6


    【解决方案1】:

    add_cookie 方法没有命名参数:

    add_cookie(cookie_dict)

    将 cookie 添加到您当前的会话中。

    更多解释请参见api:7.20 Remote WebDriver -> add_cookie

    正确的用法是

    driver.add_cookie({'name':'foo','value':'bar'}))
    

    【讨论】:

      猜你喜欢
      • 2018-02-01
      • 2022-07-25
      • 2018-11-28
      • 1970-01-01
      • 2016-11-01
      • 2021-05-28
      • 2021-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多