【问题标题】:Spoof navigator properties in chrome selenium webdriverchrome selenium webdriver中的欺骗导航器属性
【发布时间】:2019-12-17 04:32:20
【问题描述】:

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

非常感谢任何帮助

【问题讨论】:

    标签: c# selenium google-chrome navigator spoof


    【解决方案1】:
        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

    【讨论】:

      【解决方案2】:

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

      driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
        "source": """
          Object.defineProperty(navigator, 'deviceMemory', {
            get: () => 99
          })
        """
      })
      

      【讨论】:

      • chrome devtools 协议
      猜你喜欢
      • 2016-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-05
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多