我正在尝试在启动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完成上述操作。
答案 0 :(得分: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
。
答案 1 :(得分:4)
对于Firefox:
import nconf from "nconf";
import path from "path";
import config from `./manifest.${process.env['NODE_ENV'] || 'development'}`;
nconf.argv()
.env()
.defaults(config);
// ...
来源:FAQ,JS selenium cookie question和the description of Network.cookie.cookieBehavior
。
答案 2 :(得分:3)
这将是:
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)。
答案 3 :(得分: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)