量角器-找不到日志类型“性能”错误

时间:2019-06-28 19:17:15

标签: protractor webdriver-manager

webdriver-manager 12.1.5

量角器版本5.4.2

Chrome版本75.0.3770.100

browser.manage().logs().get('performance');

在升级我的webdriver-manager和量角器版本之前,此方法工作正常。

(node:27715) UnhandledPromiseRejectionWarning: WebDriverError: invalid argument: log type 'performance' not found
 (Session info: chrome=75.0.3770.100)
 Build info: version: '3.141.59', revision: 'e82be7d358', time:    '2018-11-14T08:25:53'
System info:, os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.4', java.version: '1.8.0_191'
 Driver info: driver.version: unknown
at Object.checkLegacyResponse (node_modules/selenium-webdriver/lib/error.js:546:15)

如果我评论browser.manage()。logs()。get('performance');以及其他与性能相关的代码,则测试运行正常。

webdriver-manager日志显示:

Starting ChromeDriver 75.0.3770.90  on port 12268

3 个答案:

答案 0 :(得分:0)

新版本可能不支持性能日志类型。您始终可以使用 getAvailableLogTypes 函数来检查支持的日志类型。我尝试了以下代码

var supportedLogTypes = await browser.manage().logs().getAvailableLogTypes();

收到的输出:

enter image description here

这意味着您只能使用两种受支持的日志类型中的一种。

答案 1 :(得分:0)

我用chrome 75. *和量角器5.4.2版本尝试了同样的事情。以下是我的发现。

  1. loggingPrefs 对象是chromeOptions等公认的功能之一。该对象使我们可以决定日志记录部分的首选项。有关功能的更多详细信息,请参见link

    在量角器上下文中,我们必须将loggingPrefs对象传递给启用它的功能。 enter image description here

    一旦通过它,我们就可以使用 browser.manage()。logs()。get('performance'); 来获取所有性能日志。

  2. 如果要更改perfLoggingPrefs,则它是chromeOptions对象的一部分,必须在那里进行更新。如果我们要使用默认值,则无需提及。 enter image description here

答案 2 :(得分:0)

我在this github issue thead上遇到了一个潜在的解决方案。显然,最近chromedriver已开始更加严格地遵守W3C标准,这影响了webdriver激活日志的方式。

我们可以通过在chromeoptions中设置w3c: false标志来解决此问题。

capabilities: {
    browserName: 'chrome',
    loggingPrefs: {
        browser: 'ALL',
        driver: 'ALL',
        performance: 'ALL',
    },
    'goog:chromeOptions': {
        perfLoggingPrefs: {
            enableNetwork: true,
        },
        w3c: false,
    },
},