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
答案 0 :(得分:0)
新版本可能不支持性能日志类型。您始终可以使用 getAvailableLogTypes 函数来检查支持的日志类型。我尝试了以下代码
var supportedLogTypes = await browser.manage().logs().getAvailableLogTypes();
收到的输出:
这意味着您只能使用两种受支持的日志类型中的一种。
答案 1 :(得分:0)
我用chrome 75. *和量角器5.4.2版本尝试了同样的事情。以下是我的发现。
loggingPrefs 对象是chromeOptions等公认的功能之一。该对象使我们可以决定日志记录部分的首选项。有关功能的更多详细信息,请参见link。
在量角器上下文中,我们必须将loggingPrefs对象传递给启用它的功能。
一旦通过它,我们就可以使用 browser.manage()。logs()。get('performance'); 来获取所有性能日志。
如果要更改perfLoggingPrefs,则它是chromeOptions对象的一部分,必须在那里进行更新。如果我们要使用默认值,则无需提及。
答案 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,
},
},