0

I am trying to automate some tasks on a website using chrome selenium. I spoof the navigator.webdriver based on this post. How to spoof other properties of navigator like: deviceMemory, hardwareConcurrency, maxTouchPoints? I am using Selenium in C#.

Any help is much appreciated

2 Answers2

5
    var parameters = new Dictionary<string, object>
    {
        ["source"] = "Object.defineProperty(navigator, 'webdriver', { get: () => undefined })"
    };
    var driver = new ChromeDriver(@"c:\bin\", options);
    driver.ExecuteChromeCommand("Page.addScriptToEvaluateOnNewDocument", parameters);

Answer is tested by me and inspired by https://stackoverflow.com/a/60405966/3997521.

petrosmm
  • 479
  • 10
  • 20
1

You can set those before script execution similarly with cdp command. I'm not sure what it looks like in c# but in python:

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    Object.defineProperty(navigator, 'deviceMemory', {
      get: () => 99
    })
  """
})
pguardiario
  • 51,516
  • 17
  • 106
  • 147