我正在尝试使用 chrome selenium 自动执行网站上的一些任务。navigator.webdriver
我根据这篇文章恶搞。如何欺骗导航器的其他属性,例如:deviceMemory, hardwareConcurrency, maxTouchPoints
?我在 C# 中使用 Selenium。
任何帮助深表感谢
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
})
"""
})