azD*_*Dev 2 python selenium urllib2 python-2.7 selenium-webdriver
我的代码是这样的:
response = urllib2.urlopen(request)
cookieValue = response.info()["Set-Cookie"]
cookie = {'Set-Cookie': cookieValue}
driver = webdriver.Chrome()
driver.get(innerPageOfTheSameRequest)
print cookie
driver.add_cookie(cookie)
Run Code Online (Sandbox Code Playgroud)
cookie按预期打印:
{'Set-Cookie':'SessionID_R3 = dXM0ChrdPhYUhfL1drI2eP9r6Wjha8tX943Sv8CZp0v6LQ2v1/m u3y/h839tX0zGJ36VtBsIY4EJaxlr78g9gokEfz6HA7wvXb7ECo8nRjXjO0 + Ty/E5IC64BseItDk; pa th = /; 仅Http;'}
但是我在最后一行得到了一个豁免:
回溯(最近一次调用最后一次):文件"p.py",第80行,在driver.add_cookie(cookie)文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py"中,行634,在add_cookie self.execute(Command.ADD_COOKIE,{'cookie':cookie_dict})文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py",第201行,执行自我.error_handler.check_response(响应)文件"C:\ Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py",第194行,在check_response中引发exception_class(message,screen,stacktrace)selenium.common.exceptions .WebDriverException:消息:未知错误:cookie名称缺失或无效:"undefined"(会话信息:chrome = 48.0.2564.116)(驱动程序信息:chromedriver = 2.21.371459(36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4),platform = Windows NT 6.1 SP1 x86_64)
有人可以帮我理解我做错了什么吗?谢谢
您的cookie没有正确的格式.根据文档,论证add_cookie()是
cookie_dict:一个字典对象,带有必需的键 - "name"和"value";
您没有这些密钥,而是具有Set-Cookie标头.
你的cookie应该是
{'name': SessionID_R3,
'value' : 'dXM0ChrdPhYUhfL1drI2eP9r6Wjha8tX943Sv8CZp0v6LQ2v1/m u3y/h839tX0zGJ36VtBsIY4EJaxlr78g9gokEfz6HA7wvXb7ECo8nRjXjO0+Ty/E5IC64BseItDk',
'path' : '/'}
Run Code Online (Sandbox Code Playgroud)
我不确定你是否可以获得,HttpOnly因为它没有在文档中提到.