在 C# 中使用 Selenium 获取 Network 中的 timing 参数中的 'wait for server response' 和 'content download' 数值,可以通过使用 Chrome DevTools Protocol 来实现。

首先,你需要安装并引用 Chrome DevTools Protocol 的库,可以通过 NuGet 包管理器安装 ChromeDevTools.ProtocolMicrosoft.Chrome.DevTools.Protocol

接下来,你可以按照以下步骤获取这些数值:

  1. 创建一个 ChromeDevToolsProtocolSession 对象,并与 Chrome 浏览器建立连接:
using Microsoft.Chrome.DevTools.Protocol;

var session = new ChromeDevToolsProtocolSession();
await session.StartSession();
  1. 启用 Network 域:
await session.SendAsync(new Network.EnableCommand());
  1. 监听 Network.requestWillBeSent 事件,以获取请求开始的时间:
session.Subscribe<Network.RequestWillBeSentEvent>(evt =>
{
    var requestStartTime = evt.Timestamp;
    // 根据需要处理请求开始的时间
});
  1. 监听 Network.loadingFinished 事件,以获取请求结束的时间和内容下载的时间:
session.Subscribe<Network.LoadingFinishedEvent>(evt =>
{
    var requestEndTime = evt.Timestamp;
    var contentDownloadTime = evt.Timestamp - evt.EncodedDataLength; // 内容下载时间 = 请求结束时间 - 编码数据长度
    // 根据需要处理请求结束时间和内容下载时间
});
  1. 在你需要的时候,可以使用 session.SendAsync 方法发送其他的命令来获取更多的网络信息。例如,你可以发送 Network.GetResponseBodyCommand 命令来获取响应体的内容。
var getResponseBodyCommand = new Network.GetResponseBodyCommand
{
    RequestId = requestId // 你需要获取响应体内容的请求 ID
};
var getResponseBodyResponse = await session.SendAsync(getResponseBodyCommand);
var responseBody = getResponseBodyResponse.Body;
// 根据需要处理响应体内容

请注意,这些代码只是一个基本示例,你可以根据你的具体需求进行修改和扩展。

C# Selenium 获取 Network 中 Timing 参数 - 'wait for server response' 和 'content download' 数值

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

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