Selenium seems to have a method driver.execute_cdp_cmd
but I cannot find any executeCdpCommand
for Chrome web driver in C# version of selenium library, Anyone knows where or how we can run such commands like the below code in python (I want the same on C# .NET):
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
driver.get(some_url)
I found the answer:
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.DevTools;
using OpenQA.Selenium.DevTools.V96.Page;
using Network = OpenQA.Selenium.DevTools.V96.Network;
using DevToolsSessionDomains = OpenQA.Selenium.DevTools.V96.DevToolsSessionDomains;
IDevTools devTools = driver as IDevTools;
DevToolsSession session = devTools.GetDevToolsSession();
var domains = session.GetVersionSpecificDomains<DevToolsSessionDomains>();
domains.Page.Enable(new OpenQA.Selenium.DevTools.V96.Page.EnableCommandSettings());
domains.Page.AddScriptToEvaluateOnNewDocument(new AddScriptToEvaluateOnNewDocumentCommandSettings()
{
Source = "Object.defineProperty(navigator, 'webdriver', { get: () => undefined })"
});