0

I am trying to disable cookies at the beginning of my test. I tried using options but it does not work. Now i am using

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

but still cannot select any of the options. I receive an error that the element does not exist, but when i use Developer tools i can see that it is there.

I am using

  • testCompile group: "org.seleniumhq.selenium", name: "selenium-java", version: "3.141.59"
  • testCompile group: "org.seleniumhq.selenium", name: "selenium-chrome-driver", version: "3.141.59"
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
Bozhidar Marinov
  • 116
  • 2
  • 15

2 Answers2

0

First the solution

To disable cookies on recent Chrome browsers you need to setPreference() the attribute network.cookie.cookieBehavior as follows:

  • Chrome:

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

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

History

To disable the cookies in Chrome Browsing Context using Selenium you can use a Map object to configure default_content_setting_values of cookies as 2 as follows:

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

Effectively, your code block will be:

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/");
undetected Selenium
  • 183,867
  • 41
  • 278
  • 352
0

I found a solution which is working for me :

driver.get("chrome://settings/content/cookies");
WebElement root1 = driver.findElement(By.tagName("settings-ui"));
WebElement shadowRoot1 = expandRootElement(root1);
WebElement root2 = shadowRoot1.findElement(getByIdentifier("id=container"));
WebElement main = root2.findElement(getByIdentifier("id=main"));
WebElement shadowRoot3 = expandRootElement(main);
WebElement shadowRoot4 = shadowRoot3.findElement(getByIdentifier("class=showing-subpage"));
WebElement shadowRoot5 = expandRootElement(shadowRoot4);
WebElement shadowRoot6 = shadowRoot5.findElement(getByIdentifier("id=advancedPage"));
WebElement shadowRoot7 = shadowRoot6.findElement(By.tagName("settings-privacy-page"));
WebElement shadowRoot8 = expandRootElement(shadowRoot7);
WebElement shadowRoot9 = shadowRoot8.findElement(getByIdentifier("id=pages"));
WebElement shadowRoot10 = shadowRoot9.findElement(By.tagName("settings-subpage"));
WebElement shadowRoot11 = shadowRoot10.findElement(By.tagName("category-default-setting"));
WebElement shadowRoot12 = expandRootElement(shadowRoot11);
WebElement shadowRoot13 = shadowRoot12.findElement(By.id("toggle"));
shadowRoot13.click();
Bozhidar Marinov
  • 116
  • 2
  • 15