Reputation: 966
I am trying to disable all cookies when starting up either the Chrome or Firefox browser. I have seen the examples on here but they're all in Java, and some of the Selenium code is different than it is for Python.
ChromeOptions options = new ChromeOptions();
Map prefs = new HashMap();
prefs.put("profile.default_content_settings.cookies", 2);
options.setExperimentalOptions("prefs", prefs);
driver = new ChromeDriver(options);
I want to do the above, just in Python.
Upvotes: 4
Views: 25617
Reputation: 1
For those people who still run into this: The latest Chrome version (126.0.6478.127) doesn't let you disable the cookies through Selenium. The only way you can solve this is setting back the chrome version.
The documentation for this at Selenium doesn't tell you how to do it.
So the solution to this in python looks like this:
service = webdriver.ChromeService()
options = webdriver.ChromeOptions()
options.browser_version = '125'
options.add_experimental_option("prefs", {"profile.default_content_setting_values.cookies": 2})
my_browser = webdriver.Chrome(options=options, service=service)
Keep in mind that you can only specify major versions and the following:
stable: Current CfT version.
beta: Next version to stable.
dev: Version in development at this moment.
canary: Nightly build for developers.
esr: Extended Support Release (only for Firefox).
Upvotes: 0
Reputation: 1
You only need to change there is {"profile.default_content_setting_values.cookies": 2}
becomes {"profile.block_third_party_cookies": True}
.
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("prefs", {"profile.block_third_party_cookies": True})
driver = webdriver.Chrome(chrome_options=chrome_options)
Upvotes: 0
Reputation: 21226
For Chrome after version 45, you would need to do this (@alecxe was right up til Chrome 45 I think):
selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("prefs", {"profile.default_content_setting_values.cookies": 2})
driver = webdriver.Chrome(chrome_options=chrome_options)
The only meaningful change there is default_content_settings
becomes default_content_setting_values
.
Upvotes: 6
Reputation: 38177
For Firefox:
from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("network.cookie.cookieBehavior", 2)
browser = webdriver.Firefox(firefox_profile=fp)
Source: the FAQ, a JS selenium cookie question, and the description of Network.cookie.cookieBehavior
.
Upvotes: 6
Reputation: 473863
It would be:
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
chrome_options.add_experimental_option("prefs", {"profile.default_content_settings.cookies": 2})
driver = webdriver.Chrome(chrome_options=chrome_options)
tested - worked for me (Chrome 45, selenium 2.47).
Upvotes: 4