如何使用selenium和python在phantomjs中设置cookie?

Lou*_*ise 5 python cookies selenium phantomjs

在此输入图像描述

它引发了一条错误消息"只能为当前域设置Cookie",但我所做的只是将旧的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)
Run Code Online (Sandbox Code Playgroud)

Flo*_* B. 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')})
Run Code Online (Sandbox Code Playgroud)


小智 5

您需要更改每个cookie的domain参数.域字段必须格式如下:

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')
Run Code Online (Sandbox Code Playgroud)