Мне нужно добавить куки через Webdriver, используя Firefox с Python. Он работает в обычном режиме, но не в режиме 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")
Независимо от того, сколько раз я обновляю драйвер, куки не загружаются. В журнале консоли ничего нет в document.cookie
. Он отлично работает в Chrome (не тестировался в режиме инкогнито) и Firefox (не приватно)
Я знаю, что в частном режиме селен избыточен, и я прочитал этот вопрос , а также этот .
Но я не могу изменить большую часть кода. Мне нужна эта функция, чтобы устанавливать cookie даже в приватном режиме в Firefox.
Firefox 66.0.1
Geckodriver 0.23.0 (2018-10-04)
Питон селен 3.14.1
Редактировать 1
Я тестировал с хромом (инкогнито) и, кажется, работает
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)
Питон селен 3.14.1
Я также мог бы найти некоторые проблемы с firefox в этом ответе , но не мог понять его смысл. Используемая там версия firefox также старая, поэтому в текущей версии могут быть некоторые изменения.