硒ChromeWebDriver:无法设置Cookie

时间:2019-08-08 14:42:08

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

我正在开发一个网络抓取工具,它需要使用硒铬来渲染javascript。使用docker selenium / standalone chrome图像时,大多数功能都运行良好,但是切换到selenium网格以启用并行数据收集时,cookie无法添加到浏览器。有问题的Cookie是在产品网站上禁用年龄检查,因此没有什么复杂的事情。

版本:

3.141.59-钛

硒:3.141.59 谷歌浏览器:76.0.3809.87 ChromeDriver:76.0.3809.68 Mozilla Firefox: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)

1 个答案:

答案 0 :(得分:1)

方法add_cookie没有命名参数:

  

add_cookie(cookie_dict)

     

向当前会话添加cookie。

有关更多说明,请参见api:7.20 Remote WebDriver -> add_cookie

正确的用法是

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