如何使用Selenium和Java在Chrome中禁用Cookie

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

我正在尝试在测试开始时禁用Cookie。我尝试使用选项,但不起作用。现在我正在使用

WebDriver driver = getDriver();
driver.get("chrome://settings/content/cookies");
WebElement element = driver.findElement(By.id("labelWrapper"));

但仍然无法选择任何选项。我收到一个错误消息,指出该元素不存在,但是当我使用开发人员工具时,我可以看到它在那里。

我正在使用

  • testCompile组:“ org.seleniumhq.selenium”,名称:“ selenium-java”,版本:“ 3.141.59”]
  • testCompile组:“ org.seleniumhq.selenium”,名称:“ selenium-chrome-driver”,版本:“ 3.141.59”]
java selenium google-chrome cookies selenium-chromedriver
2个回答
0
投票

您可以按以下方式禁用Chrome Cookie:

ChromeOptions options = new ChromeOptions();  
Map prefs = new HashMap();  

prefs.put("profile.default_content_settings.cookies", 2);  

options.setExperimentalOptions("prefs", prefs); 

driver = new ChromeDriver(options); 

第二种方法:

DesiredCapabilities capabilities = DesiredCapabilities.chrome()
capabilities.setCapability("chrome.switches", Arrays.asList("--disable-local-storage"))

driver = new ChromeDriver(capabilities);

0
投票

首先解决

要在最近的Chrome浏览器上禁用cookie,您需要setPreference()属性network.cookie.cookieBehavior如下:

  • Chrome:

    prefs.put("network.cookie.cookieBehavior", 2);
    
  • Firefox:

    profile.setPreference("network.cookie.cookieBehavior", 2);
    

历史

要使用SeleniumChrome浏览上下文中禁用cookie,您可以使用Map对象将cookiesdefault_content_setting_values配置为2,如下:

put("profile.default_content_setting_values.cookies", 2);

有效地,您的代码块将是:

System.setProperty("webdriver.chrome.driver", "C:\\path\\to\\chromedriver.exe");
Map<String, Object> prefs = new HashMap<String, Object>();
// Pass the argument 1 to allow and 2 to block
prefs.put("profile.default_content_setting_values.cookies", 2);
prefs.put("network.cookie.cookieBehavior", 2);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.google.com/");
© www.soinside.com 2019 - 2024. All rights reserved.