首页 > 解决方案 > 如何使用 Selenium 和 Java 在 Chrome 中禁用 cookie

问题描述

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

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

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

我在用

标签: javaseleniumgoogle-chromecookiesselenium-chromedriver

解决方案


首先解决方案

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

  • 铬合金:

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

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

历史

要使用Selenium在Chrome 浏览上下文中禁用 cookie,您可以使用对象来配置cookie,如下所示:Mapdefault_content_setting_values2

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);
prefs.put("profile.block_third_party_cookies", True);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.google.com/");

推荐阅读