Несоответствие версий ChromeDriver и Chrome при запуске тестов Protractor, но обновление недоступно

Я пытаюсь запустить тесты Protractor в своем приложении Angular, но у меня возникла проблема с моей версией ChromDriver, не соответствующей моей версии Chrome.

Я могу запустить webdriver-manager start нормально, без проблем, но когда я пытаюсь запустить тесты, я получаю следующее сообщение об ошибке:

SessionNotCreatedError: сеанс не создан: эта версия ChromeDriver поддерживает только Chrome версии 85. Информация о сборке: версия: '3.141.59', версия: 'e82be7d358', время: '2018-11-14T08: 25: 53'

Я проверил свою версию Chrome, и это версия 84. Но когда я пытаюсь обновить Chrome, он говорит, что моя версия актуальна.

Итак, у меня есть 2 вопроса:

(1) Почему мне недоступна последняя версия (85) Chrome?

(2) Есть ли способ понизить версию моего веб-драйвера, чтобы он использовал версию Chrome 84?


person user9847788    schedule 24.07.2020    source источник


Ответы (2)


Я также ответил на этот вопрос здесь: https://github.com/angular/protractor/issues/5460 Самое простое решение - использовать:

webdriver-manager update --versions.chrome=84.0.4147.30
webdriver-manager start --versions.chrome=84.0.4147.30

для обновления и запуска сервера webdriver. Это заставляет версию оставаться на уровне 84. То, что, как мне кажется, произошло, v85 хромодрайвера было добавлено и помечено как последняя (вы можете увидеть это здесь), что заставило webdriver-manager начать загрузку версии 85 (по умолчанию загружается последняя версия).

person L. Aleksiev    schedule 24.07.2020
comment
Это фантастическое решение, избавившее меня от боли в сердце, спасибо за это! - person ConorJohn; 17.09.2020

Если вы обычно не запускаете сервер webdriver-manager с webdriver-manager start. Вот еще одно решение, которое вы можете попробовать, которое я также опубликовал в обсуждении на webdriver-manager, ошибка 376

Вот скопированный обходной путь (это просто временный промежуток, поскольку, очевидно, мы не хотим жестко кодировать версию):

  1. У нас установлен webdriver-manager как зависимость проекта (npm install --save-dev webdriver-manager)

  2. мы вызываем webdriver-manager update --versions.chrome 84.0.4147.30 перед запуском наших тестов. Это установит версию 84 хромированных драйверов в ./node_modules/webdriver-manager/selenium/. (Мы просто сделали это как сценарий npm в нашем package.json)

  3. Затем мы обновляем файл protractor.conf, чтобы в корне файла exports.config была эта строка: _4 _ **

Protractor по-прежнему устанавливает chromedriverr 85, но он будет использовать версию 84.

** В нашем случае мы запускаем наши тесты транспортира в докере, но разрабатываем в основном в Windows. Поэтому я обновил protractor.conf, добавив в него эту строку, чтобы она работала либо в: chromeDriver: process.platform === "win32" ? "./node_modules/webdriver-manager/selenium/chromedriver_84.0.4147.30.exe" : "./node_modules/webdriver-manager/selenium/chromedriver_84.0.4147.30"

person Tyler Nielsen    schedule 24.07.2020