在 Chrome/Firefox 的 Webdriver 中禁用 Cookie

问题描述 投票:0回答:5

我尝试在启动 Chrome 或 Firefox 浏览器时禁用所有 cookie。我已经看过这里的示例,但它们都是用 Java 编写的,并且一些 Selenium 代码与 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);  

我想用 Python 来完成上述操作。

python selenium cookies selenium-webdriver
5个回答
6
投票

对于火狐浏览器:

from selenium import webdriver

fp = webdriver.FirefoxProfile()
fp.set_preference("network.cookie.cookieBehavior", 2)

browser = webdriver.Firefox(firefox_profile=fp)

来源:常见问题解答JS 硒饼干问题,以及

Network.cookie.cookieBehavior
的描述。


5
投票

对于 45 版之后的 Chrome,您需要执行此操作(我认为 @alecxe 在 Chrome 45 之前都是正确的):

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)

唯一有意义的变化是

default_content_settings
变成了
default_content_setting_values


4
投票

将会是:

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)

经过测试 - 为我工作(Chrome 45,selenium 2.47)。


0
投票

你只需要把那里的

{"profile.default_content_setting_values.cookies": 2}
改成
{"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)

0
投票

对于那些仍然遇到此问题的人: 最新的 Chrome 版本 (126.0.6478.127) 不允许您通过 Selenium 禁用 cookie。解决此问题的唯一方法是设置 chrome 版本。

Selenium 的文档并没有告诉你如何做到这一点。

所以 python 中的解决方案如下所示:

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)

请记住,您只能指定主要版本和以下内容:

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).
© www.soinside.com 2019 - 2024. All rights reserved.