ChromeDriver 无法在 Selenium Java 中添加性能日志记录

soh*_*ail 3 java selenium-chromedriver

我查看了 stackoverflow 上有关此主题的网络搜索结果和答案,但找不到任何人有相同的问题。以下是我正在使用的启用性能日志记录的代码:

    ChromeOptions options = new ChromeOptions();

    // options.addArguments("--headless");
    options.addArguments("--remote-debugging-port=9222");
    options.addArguments("--no-sandbox");
    options.addArguments("--disable-application-cache");
    options.addArguments("--disable-notifications");
    options.addArguments("--disable-dev-shm-usage");
    options.addArguments("--disable-extensions");
    options.addArguments("--test-type");
    options.addArguments("start-maximized");
    options.addArguments("disable-infobars");
    //options.addArguments("user-data-dir=C:\\apps\\selenium\\chrome\\data");
    options.setExperimentalOption("useAutomationExtension", false);
    options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));

    // add Network logging
    LoggingPreferences logPrefs = new LoggingPreferences();
    logPrefs.enable(LogType.PERFORMANCE, Level.ALL);
    options.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);

    Map<String, Object> perfLogPrefs = new HashMap<String, Object>();
    perfLogPrefs.put("enableNetwork", true);
    perfLogPrefs.put("traceCategories", "devtools.network");
    options.setExperimentalOption("perfLoggingPrefs", perfLogPrefs);

    webDriver = new ChromeDriver(options);

    webDriver.manage().deleteAllCookies();
    webDriver.manage().window().maximize();
Run Code Online (Sandbox Code Playgroud)

执行时,出现如下错误:

    Starting ChromeDriver 80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}) on port 27252
    Only local connections are allowed.
    Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
org.openqa.selenium.InvalidArgumentException: invalid argument: entry 0 of 'firstMatch' is invalid
from invalid argument: perfLoggingPrefs specified, but performance logging was not enabled
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03
Run Code Online (Sandbox Code Playgroud)

我在上面缺少什么?代码示例使用 ChromeDriver(功能),但已弃用。在添加性能日志记录之前是否需要启用其他一些设置?

谢谢

soh*_*ail 12

我能够在SeleniumHQ issues上找到答案。本质上,CapabilityType.LOGGING_PREFS 在此版本的 ChromeDriver 中被破坏。我改变了线路

options.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
Run Code Online (Sandbox Code Playgroud)

options.setCapability("goog:loggingPrefs", logPrefs);
Run Code Online (Sandbox Code Playgroud)

首选项名称已更改为 goog:loggingPrefs 以符合 W3C。在此更改后我能够收集网络日志。