我希望启动浏览器(FF,CHROME)用于禁用cookie的测试,我试过这个:
service =
new ChromeDriverService.Builder()
.usingDriverExecutable(new File("src/test/resources/chromedriver"))
.usingAnyFreePort().build();
try {
service.start();
} catch (IOException e1) {
e1.printStackTrace();
}
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability("disable-restore-session-state", true);
driver = new ChromeDriver(service, capabilities);
但这不起作用......
答案 0 :(得分:9)
我刚刚获得Firefox的解决方案:
FirefoxProfile profile = new ProfilesIni().getProfile("default");
profile.setPreference("network.cookie.cookieBehavior", 2);
driver = new FirefoxDriver(profile);
但我不知道如何使用Chrome管理它。
答案 1 :(得分:4)
您可以按以下方式停用Chrome Cookie:
Map prefs = new HashMap();
prefs.put("profile.default_content_settings.cookies", 2);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOptions("prefs", prefs);
driver = new ChromeDriver(options);
答案 2 :(得分:1)
对于Chrome,请尝试以下操作:
DesiredCapabilities capabilities = DesiredCapabilities.chrome()
capabilities.setCapability("chrome.switches", Arrays.asList("--disable-local-storage"))
driver = new ChromeDriver(capabilities);
答案 3 :(得分:1)
对于以下作品的IE -
禁用cookie:
String command = "REG ADD \"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\ \" /v 1A10 /t REG_DWORD /d 0X3 /f";
Runtime.getRuntime().exec(command);
启用Cookie:
String command = "REG ADD \"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\ \" /v 1A10 /t REG_DWORD /d 0X1 /f";
Runtime.getRuntime().exec(command);
答案 4 :(得分:1)
您可以使用以下代码段来禁用Chrome和Firefox浏览器中的Cookie。如果您希望启用cookie,只需删除该功能即可。
Safari不支持任何实现此目的的能力。
对于Chrome:
DesiredCapabilities caps = new DesiredCapabilities();
ChromeOptions options = new ChromeOptions();
Map<String, Object> prefs = new HashMap<String, Object>();
Map<String, Object> profile = new HashMap<String, Object>();
Map<String, Object> contentSettings = new HashMap<String, Object>();
contentSettings.put("cookies",2);
profile.put("managed_default_content_settings",contentSettings);
prefs.put("profile",profile);
options.setExperimentalOption("prefs",prefs);
caps.setCapability(ChromeOptions.CAPABILITY,options);
WebDriver driver = new ChromeDriver(caps);
对于Firefox:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("network.cookie.cookieBehavior",2);
caps.setCapability(FirefoxDriver.PROFILE,profile);
答案 5 :(得分:1)
当前chrome版本的首选项略有变化。
我当前正在使用Chrome版本70。
在Java 11中。
var chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--incognito", "start-maximized"); // incognito and maximized.
var prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.cookies", 2);
chromeOptions.setExperimentalOption("prefs", prefs);
var webDriver = new ChromeDriver(chromeOptions);
根据official doc,
DesiredCapabilities
不推荐用于Java,因此只需使用ChromeOptions
。
引自文档。
偏好:字典
一本字典,每个条目都由字典的名称组成 偏好及其价值。这些首选项仅适用于 使用中的用户个人资料。请参阅Chrome浏览器中的“首选项”文件 用户数据目录示例。
首选项文件为C:\ Users \用户名\ AppData \ Local \ Google \ Chrome \ User Data \ Default \ Preferences
我刚刚在Chrome中使用设置,看到了文件中发生的变化。