ohbrobig
ohbrobig

Reputation: 966

Disabling Cookies in Webdriver for Chrome/Firefox

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

Answers (5)

Balázs Nagy
Balázs Nagy

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

Kevin King
Kevin King

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

Ryley
Ryley

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

serv-inc
serv-inc

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

alecxe
alecxe

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

Related Questions