0

我正在尝试使用 chrome selenium 自动执行网站上的一些任务。navigator.webdriver我根据这篇文章恶搞。如何欺骗导航器的其他属性,例如:deviceMemory, hardwareConcurrency, maxTouchPoints?我在 C# 中使用 Selenium。

任何帮助深表感谢

4

2 回答 2

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);

答案由我测试并受到https://stackoverflow.com/a/60405966/3997521的启发。

于 2020-02-27T21:43:39.883 回答
1

您可以使用 cdp 命令类似地在脚本执行之前设置它们。我不确定它在 c# 中的样子,但在 python 中:

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
  "source": """
    Object.defineProperty(navigator, 'deviceMemory', {
      get: () => 99
    })
  """
})
于 2019-12-17T05:13:19.330 回答