Транспортир - ошибка типа журнала "производительность" не найдена - PullRequest
1 голос
/ 28 июня 2019

webdriver-manager 12.1.5

транспортир Версия 5.4.2

Chrome версия 75.0.3770.100

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

Это нормально работало перед обновлением моего веб-драйвера-версия менеджера и транспортира.

(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 голосов
/ 02 июля 2019

Я попробовал то же самое с chrome 75. * и транспортиром версии 5.4.2.Ниже приведены мои выводы.

  1. loggingPrefs объект является одной из признанных возможностей, таких как chromeOptions.Этот объект позволяет нам решать предпочтения в части регистрации.Для получения более подробной информации о возможностях см. ссылка .

    В контексте транспортира мы должны передать объект loggingPrefs в возможности, чтобы включить его.enter image description here

    Как только мы передадим его, мы можем использовать browser.manage (). Logs (). Get ('performance'); , чтобы получить всю производительностьlogs.

  2. Если вы хотите изменить perfLoggingPrefs, тогда он является частью объекта chromeOptions и должен быть там обновлен.Если мы хотим использовать default, то не нужно упоминать.enter image description here

0 голосов
/ 09 июля 2019

Я обнаружил потенциальное решение проблемы the github thead . Очевидно, что недавно chromedriver начал более строго придерживаться стандартов W3C, и это повлияло на то, как веб-драйвер активирует журналы.

Мы можем обойти эту проблему, установив флаг w3c: false в chromeoptions следующим образом.

capabilities: {
    browserName: 'chrome',
    loggingPrefs: {
        browser: 'ALL',
        driver: 'ALL',
        performance: 'ALL',
    },
    'goog:chromeOptions': {
        perfLoggingPrefs: {
            enableNetwork: true,
        },
        w3c: false,
    },
},
0 голосов
/ 01 июля 2019

Новая версия может не поддерживать тип журнала производительности.Вы всегда можете использовать функцию getAvailableLogTypes для проверки поддерживаемых типов журналов.Я попробовал следующий код

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

полученный ответ:

enter image description here

Это означает, что вы можете использовать только один из двух поддерживаемых типов журнала.

...