它引发了一条错误消息,说“只能为当前域设置Cookie”,但我所做的只是将旧cookie放入。有时我添加'正确'域,它会引发错误消息“无法设置曲奇饼”。 我在Firefox中测试过,Firefox也无法工作。
from selenium import webdriver
driver = webdriver.PhantomJS(executable_path=phantompath)
driver.get('http://stackoverflow.com/')
driver.get_screenshot_as_file('1.png')
cookies = driver.get_cookies()
driver.delete_all_cookies()
driver.get_cookies()
for cookie in cookies:
driver.add_cookie(cookie)
答案 0 :(得分:6)
PhantomJS驱动程序不支持cookie字典中的所有键。解决此问题的一种方法是选择键:
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get('http://stackoverflow.com/')
cookies = driver.get_cookies()
driver.delete_all_cookies()
for cookie in cookies :
driver.add_cookie({k: cookie[k] for k in ('name', 'value', 'domain', 'path', 'expiry')})
答案 1 :(得分:5)
您需要更改每个Cookie的域参数。域字段必须格式如下:
driver = webdriver.PhantomJS()
driver.get('http://www.baidu.com')
driver.delete_all_cookies()
for item in cookie_dictionary:
driver.add_cookie({
'domain': '.baidu.com', # note the dot at the beginning
'name': item['name'],
'value': item['value'],
'path': '/',
'expires': None
})
driver.get('http://www.baidu.com')