【问题标题】:Selenium.WebDriver 3.141.0 Get Network Logs in Chrome Developer ToolsSelenium.WebDriver 3.141.0 在 Chrome 开发者工具中获取网络日志
【发布时间】:2020-10-02 18:00:36
【问题描述】:

我正在努力获取网络开发人员日志以进行性能测试。下面是我正在使用的代码,这是我遇到的错误。我有点卡住了,不完全确定为什么我无法初始化我的ChromeDriver。您如何正确检索网络 devtools 日志以获得性能?

OpenQA.Selenium.WebDriverException: 'invalid argument: entry 0 of 'firstMatch' is invalid from invalid argument: perfLoggingPrefs specified, but performance logging was not enabled'

public Driver(ChromeDriverModel chromeDriverModel)
        {
            ChromeOptions chromeOptions = new ChromeOptions();
            enablePerformanceMonitor = chromeDriverModel.enablePerformanceMonitoring;
            if (enablePerformanceMonitor)
                chromeOptions = _ChromePerformanceOptions();

            if (!string.IsNullOrWhiteSpace(chromeDriverModel.ChromeDriverLocation))
            {
                if (enablePerformanceMonitor)
                    _webDriver = new ChromeDriver(chromeDriverModel.ChromeDriverLocation, chromeOptions);
                else
                    _webDriver = new ChromeDriver(chromeDriverModel.ChromeDriverLocation);
            }
            else
            {
                if (enablePerformanceMonitor)
                    _webDriver = new ChromeDriver(chromeOptions);
                else
                    _webDriver = new ChromeDriver();
            }
        }


private ChromeOptions _ChromePerformanceOptions()
        {
            var option = new ChromeOptions();
            var perfLogPrefs = new ChromePerformanceLoggingPreferences();
            perfLogPrefs.AddTracingCategories(new string[] { "devtools.network", "devtools.timeline" });
            option.PerformanceLoggingPreferences = perfLogPrefs;
            option.AddAdditionalCapability(CapabilityType.EnableProfiling, true, true);
            option.SetLoggingPreference("performance", LogLevel.All);
            return option;
        }

问题不一样,LoggingPreferences 和 DesiredCapibiliies 已在 3.141.0 中弃用

【问题讨论】:

  • 这是 .NET 绑定和 Chrome/chromedriver 75 之间的错误,它首次启用了 W3C WebDriver 规范模式作为默认模式。
  • @JimEvans 我正在阅读同样的内容,但有什么解决方法?我只是去 beta 76 吗?或者我怎样才能禁用 W3C?我试过 goog:LoggingPrefs 还是不行

标签: c# selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

您需要启用性能日志记录。

LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.PERFORMANCE, Level.ALL);

【讨论】:

  • LoggingPreferences 似乎在 3.141 中被贬低了,至少我在 OpenQA.Selenium 中找不到它
  • 作为后续有 ChromePerformanceLoggingPreferences 但是,我没有看到任何关于如何启用的明确指示
【解决方案2】:

不确定您是否能够找到任何解决方案。截至目前,我正在使用 Selenium Webdriver v3.141 和 Selenium.Chrome.WebDriver v2.35,并且能够获取性能日志。

ChromeOptions options = new ChromeOptions();
var perfLogPrefs = new ChromePerformanceLoggingPreferences();
options.PerformanceLoggingPreferences = perfLogPrefs;
options.SetLoggingPreference("performance", LogLevel.All);

//Write code to launch driver and application url

//prints the logs
for (int i = 0; i < logs.Count; i++)
{
    Console.WriteLine(logs[i].Message);
}

注意:我仍然无法找到使用最新 Selenium Chrome 驱动程序提取性能日志的解决方案

【讨论】:

猜你喜欢
  • 2021-08-31
  • 1970-01-01
  • 2017-12-21
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多