【问题标题】:C# Selenium Chrome Devtools ProtocolC# Selenium Chrome Devtools 协议
【发布时间】:2020-09-26 07:41:35
【问题描述】:

我正在尝试使用这个 devtools 协议命令:Page.AddScriptToEvaluateOnNewDocument

c# version of selenium中似乎没有完全实现这个协议命令。我也尝试过the click event,但效果不佳。但是,我可以使用一个 devtools 命令,一个带有代码的网络命令:

IDevTools devTools = driver as IDevTools;
DevToolsSession session = devTools.CreateDevToolsSession();
session.Network.Enable(new OpenQA.Selenium.DevTools.Network.EnableCommandSettings());
session.Network.SetBlockedURLs(new OpenQA.Selenium.DevTools.Network.SetBlockedURLsCommandSettings()
{
    Urls = new string[] { "favicon" }
});

有什么我可以自己解决的吗?

参考:
https://github.com/SeleniumHQ/selenium/issues/8000

【问题讨论】:

  • 它是由协议本身实现的,这就是为什么cs文件只是一个虚拟文件(其他命令也是如此),所以我猜你用错了。

标签: c# selenium selenium-webdriver google-chrome-devtools chrome-devtools-protocol


【解决方案1】:

这是您可以使用的正确代码:

using DevTools =  OpenQA.Selenium.DevTools.V95;

using Network = OpenQA.Selenium.DevTools.V95.Network;

using DevToolsSessionDomains = OpenQA.Selenium.DevTools.V95.DevToolsSessionDomains;


        IDevTools devTools = chromeDriver as IDevTools;
        IDevToolsSession session = devTools.GetDevToolsSession();


        var domains = session.GetVersionSpecificDomains<DevToolsSessionDomains>();
        await domains.Network.Enable(new Network.EnableCommandSettings());
        await domains.Network.SetBlockedURLs(new DevTools.Network.SetBlockedURLsCommandSettings()
        {
            Urls = new string[] { "favicon" }
        });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-05
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    相关资源
    最近更新 更多