在C#中使用Selenium通过performance获取Network.responseReceived,可以通过执行JavaScript代码来实现。以下是一个示例代码:

using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.DevTools;
using OpenQA.Selenium.DevTools.Network;

class Program
{
    static void Main()
    {
        // 创建一个ChromeDriver实例
        using (var driver = new ChromeDriver())
        {
            // 启用DevTools服务
            var devTools = driver as IDevTools;
            var session = devTools.CreateDevToolsSession();

            // 启用Network域
            var network = session.GetVersioned<NetworkExperimental>();
            network.Enable(new EnableCommandSettings());

            // 注册Network.responseReceived事件处理程序
            network.ResponseReceived += (sender, e) =>
            {
                var response = e.Response;
                var requestId = response.RequestId;
                var url = response.Response.Url;
                var status = response.Response.Status;

                // 处理响应数据
                // ...

                // 打印响应信息
                Console.WriteLine($"Request ID: {requestId}");
                Console.WriteLine($"URL: {url}");
                Console.WriteLine($"Status: {status}");
            };

            // 导航到网页
            driver.Navigate().GoToUrl("https://example.com");

            // 等待网络请求完成
            session.Wait(network.ResponseReceived, timeout: TimeSpan.FromSeconds(10));
        }
    }
}

上述代码使用ChromeDriver来启动Chrome浏览器,并创建一个DevTools会话。然后,通过启用Network域并注册Network.responseReceived事件处理程序,可以在每次响应接收时获取相关信息。最后,使用driver.Navigate().GoToUrl()方法导航到一个网页,并使用session.Wait()方法等待网络请求完成。

请注意,上述代码使用了Selenium 4的DevTools API。确保你的Selenium版本支持这些功能。

C# selenium 通过 performance 获取NetworkresponseReceived

原文地址: https://www.cveoy.top/t/topic/jfK5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录