铬硒网络驱动程序中的欺骗导航器属性



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

任何帮助都非常感谢

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 启发的。

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

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

最新更新