C# selenium 通过 performance 获取NetworkresponseReceived
在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版本支持这些功能。
原文地址: https://www.cveoy.top/t/topic/jfK5 著作权归作者所有。请勿转载和采集!