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

首先,创建一个ChromeOptions对象,启用DevTools,并将其传递给ChromeDriver:

ChromeOptions options = new ChromeOptions();
options.AddAdditionalCapability('goog:loggingPrefs', new Dictionary<string, object> { { 'performance', 'ALL' } });

ChromeDriver driver = new ChromeDriver(options);

接下来,启用Performance日志记录:

driver.Manage().Logs.LogsAvailable += (sender, e) =>
{
    if (e.LogType == LogType.Performance)
    {
        var performanceLog = driver.Manage().Logs.GetLog(LogType.Performance);
        foreach (var entry in performanceLog)
        {
            var logMessage = JObject.Parse(entry.Message)['message'];
            var method = logMessage['method']?.ToString();
            
            if (method == 'Network.responseReceived')
            {
                var paramsObj = logMessage['params'];
                var requestId = paramsObj['requestId']?.ToString();
                var response = paramsObj['response'];
                var url = response['url']?.ToString();
                
                if (url == 'YOUR_URL')
                {
                    var timing = response['timing'];
                    var waitForServerResponse = timing['wait']?.ToObject<double>();
                    var contentDownload = timing['receive']?.ToObject<double>();
                    
                    // 在这里使用waitForServerResponse和contentDownload
                }
            }
        }
    }
};

在上面的代码中,我们订阅了LogsAvailable事件,并检查日志类型是否为Performance。对于Performance日志,我们解析每个日志条目的message字段,并检查method字段是否为'Network.responseReceived'。如果是,我们可以获取到requestId和response对象。然后,我们可以检查response的url是否为所需的URL,并从timing对象中获取waitForServerResponse和contentDownload的值。

请注意,上述代码中的'YOUR_URL'应替换为您要获取timing参数的URL。

希望对你有所帮助!

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

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

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