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
  • 528
  • 9
  • 23
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
  • 53,827
  • 19
  • 119
  • 159