我需要使用Firefox和Python通过Webdriver添加cookie。它可以在普通模式下工作,但不能在private
模式下工作。
from selenium import webdriver
capabities = webdriver.DesiredCapabilities.FIREFOX
capabities.update({"javascriptEnabled":True})
firefoxProfile = FirefoxProfile()
firefoxProfile.set_preference("browser.privatebrowsing.autostart", True)
driver = webdriver.Firefox(desired_capabilities=capabities, firefox_profile=firefoxProfile)
driver.get("http://httpbin.org/cookies")
driver.add_cookie({"name":"drag", "value": "lol", "domain": "httpbin.org"})
driver.get("http://httpbin.org/cookies")
无论我刷新驱动程序多少次,都不会加载Cookie。控制台日志中的document.cookie
中没有任何内容。它在Chrome(未经隐身测试)和Firefox(非私有)中都可以正常工作。
我知道在硒私有模式下是多余的,并且我已经读过this SO question和this。
但是我不能更改很多代码。即使在Firefox的私有模式下,我也需要此功能来设置cookie。
Firefox 66.0.1
Geckodriver 0.23.0(2018-10-04)
Python硒3.14.1
编辑1
我已经用chrome(incognito)进行了测试,并且看起来可行
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--incognito")
capabities = webdriver.DesiredCapabilities.CHROME
capabities.update({"javascriptEnabled":True})
driver = webdriver.Chrome(desired_capabilities=capabities, chrome_options=chrome_options)
driver.get("http://httpbin.org/cookies")
driver.add_cookie({"name":"drag", "value": "lol", "domain": "httpbin.org"})
driver.refresh()
driver.get_cookies()
Chromium 73.0.3683.75建立在Ubuntu上,在Ubuntu 18.04上运行
ChromeDriver 2.43.600233(523efee95e3d68b8719b3a1c83051aa63aa6b10d)
Python硒3.14.1
我还可以在this answer中找到有关firefox的问题,但完全没有道理。那里使用的firefox版本也很旧,因此当前版本可能会有一些更改。