我正在开发一个网络抓取工具,它需要使用硒铬来渲染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)
答案 0 :(得分:1)
方法add_cookie
没有命名参数:
add_cookie(cookie_dict)
向当前会话添加cookie。
有关更多说明,请参见api:7.20 Remote WebDriver -> add_cookie
正确的用法是
driver.add_cookie({'name':'foo','value':'bar'}))