Когда я запускаю webdriver-manager, я получаю эту ошибку, я ничего не менял в своем проекте, что могло бы оправдать такую ошибку, и я использую его больше года, каждый день.
Ошибка: недопустимый или поврежденный файл jarfile ./node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-4.0.0-alpha-1.zip.jar
8.12
5.4.2
Chrome
Ubuntu 16.04
'use strict';
require('babel-core/register');
const myReporter = require('./Report/MyReporter');
const Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
const failFast = require('jasmine-fail-fast');
module.exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
framework: 'jasmine2',
allScriptsTimeout: 600000,
capabilities: {
browserName: 'chrome',
chromeOptions: {
args: ['--test-type', 'no-sandbox'],
},
},
onPrepare: () => {
browser.manage().window().setSize(1200, 1024);
jasmine.getEnv().addReporter(failFast.init());
jasmine.getEnv().addReporter(myReporter);
jasmine.getEnv().addReporter(new Jasmine2HtmlReporter({
takeScreenshots: true,
takeScreenshotsOnlyOnFailures: true,
fixedScreenshotName: false,
fileNameDateSuffix: true,
cleanDestination: false,
savePath: './Report/testReports/'
}));
}
};
У меня такая же проблема! :(
@sborland Я решил это по-своему, изменив файлы standalone-response.xml и update-config.json. Но эта ссылка может помочь вам лучше:
https://stackoverflow.com/a/55836347
@davidzaque, спасибо! Эта работа сработала для меня.
@davidzaque У меня такая же проблема. Но я не хочу устанавливать селен глобально. У моего приложения angularjs есть транспортир в модуле узла, а у транспортира есть собственные зависимости, в которых веб-драйвер обновляется до последней версии. Как установить конкретно на транспортир, а не глобально?
Ага, это ошибка. Похоже, это влияет на каждую версию сервера селена.
Вот ошибка, указанная в webdriver-manager https://github.com/angular/webdriver-manager/issues/370
И вот исправление / обсуждение исправления: https://github.com/angular/webdriver-manager/pull/371
Завтра выйдет новый релиз.
в качестве временного решения этой проблемы вы можете явно установить автономную версию при запуске webdriver.
--versions.standalone = 3.9.1
При запуске тестовых примеров над транспортиром это решение не помогло мне. Как использовать этот обходной путь с транспортиром?
Я только протестировал решение с нашей текущей настройкой.
Но если посмотреть официальные документы
http://www.protractortest.org/#/
Я бы сбежал
Я надеюсь, что это вам хоть как-то поможет.
@ tomreinartz90 я пробовал. Webdriver успешно запускается через порт 4444, но выдает ошибку при запуске protractor conf.js
[15:28:48] I/launcher - Running 1 instances of WebDriver
[15:28:48] I/hosted - Using the selenium server at http://localhost:4444/wd/hub
[15:28:50] E/launcher - Cannot define class using reflection
[15:28:50] E/launcher - WebDriverError: Cannot define class using reflection
@ZehraHN Я обнаружил, что когда я использовал версию 3.141.0, я больше не сталкивался с этой проблемой. Что-то в диапазоне 3,8 или 3,9 вызывало у меня ошибку отражения.
Да работает сейчас. Спасибо @clymerrm
@davidzaque У меня такая же проблема. Но я не хочу устанавливать селен глобально. У моего приложения angularjs есть транспортир в модуле узла, а у транспортира есть собственные зависимости, в которых веб-драйвер обновляется до последней версии. Как установить конкретно на транспортир, а не глобально?
@tejasbhosale Я не использую транспортир по всему миру. Я изменил файл: node_modules/protractor/node_modules/webdriver-manager/selenium/standalone-response.xml
за исключением ссылок, относящихся к версии 4.0.0-alpha и в файле:
/node_modules/protractor/node_modules/webdriver-manager/selenium/update-config.json
я сделал это изменение:
"standalone": {
"last": "/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar",
"all": [
"/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.141.59.jar"
]
},
После этого я сохранил эти файлы вне пути node_modules, чтобы они не обновлялись, и добавил следующие скрипты в package.json:
"scripts": {
"preinstall": "node_modules/protractor/node_modules/webdriver-manager/bin/webdriver-manager clean",
"postinstall": "cp standalone-response.xml ./node_modules/protractor/node_modules/webdriver-manager/selenium/ & cp update-config.json ./node_modules/protractor/node_modules/webdriver-manager/selenium/ & node_modules/protractor/node_modules/webdriver-manager/bin/webdriver-manager update --versions.standalone=3.141.59",
"start": "webdriver-manager start"
},
Я знаю, что для решения проблемы было слишком много маневров, но именно так мне удалось решить ее до того, как они опубликовали какое-либо другое решение.
Столкнулся с той же проблемой, что и npm install, при загрузке поврежденного jar-файла "selenium-server-standalone-4.0.0-alpha-1.zip.jar".
Пробовал снова установить npm.
У него нет самого каталога selenium под webdriver-manager!
Файлы под webdriver-manager:
всего 64
-rw-r - r-- 1 root root 1205 26 октября 1985 г. gulpfile.js
-rw-r - r-- 1 root root 547 26 октября 1985 config.json
-rw-r - r-- 1 root root 2455 26 октября 1985 README.md
-rw-r - r-- 1 root root 1078 26 октября 1985 ЛИЦЕНЗИЯ
-rw-r - r-- 1 root root 2699 26 октября 1985 CONTRIBUTING.md
-rw-r - r-- 1 root root 21636 26 октября 1985 CHANGELOG.md
drwxr-xr-x 2 root root 4096 25 апр 15:08 bin
drwxr-xr-x 3 root root 4096 25 апреля 15:08 собран
drwxr-xr-x 2 root root 4096 25 апр 15:08 документы
drwxr-xr-x 5 root root 4096 25 апреля 15:08 node_modules
-rw-r - r-- 1 root root 3650 25 апреля 15:08 package.json
Сделано с https://github.com/cnishina/webdriver-manager/commit/7dc17ef36e93f71bc63475612e343ffb84efec0f
Также мы не загружаем альфа-версии, так как раньше мы не загружали бета-версии. Пожалуйста, обновитесь до webdriver-manager 12.1.2. Если вы используете Protractor для загрузки webdriver-manager, просто удалите каталог node_modules и переустановите или выполните npm install -f
. Оставьте это открытым для видимости.
Сделано cnishina / webdriver-manager @ 7dc17ef
Также мы не загружаем альфа-версии, так как раньше мы не загружали бета-версии. Пожалуйста, обновитесь до webdriver-manager 12.1.2. Если вы используете Protractor для загрузки webdriver-manager, просто удалите каталог node_modules и переустановите или выполните
npm install -f
. Оставьте это открытым для видимости.
@cnishina
Спасибо за оперативный ответ по этому вопросу. Но моя сборка в Jenkins все еще не работает с той же ошибкой. Что я могу сделать?
@tejasbhosale Вы убедился, что вы должны получить https://github.com/angular/protractor/blob/5.4.2/package.json#L29. Может у вас есть файл блокировки, который установлен на 12.1.1?
@cnishina Спасибо за ответ. Я подозреваю, что подобное, но очистка рабочего пространства у меня не сработала. Я собираюсь исследовать больше в конфигурации jenkins. Но хорошие новости - это сработало в моем локальном окружении, так что, должно быть, это jenkins. И я проверил свой проект pakcage.json, он использует эту версию
"транспортир": "^ 5.2.0"
Это нормально? он все еще получит webdriver 12.1.2?
Приведенное ниже решение сработало для меня:
Перейдите к :
Шаг 1:
C: \ Пользователи \
Удалите указанные ниже папки
Шаг 2:
Переустановите транспортир глобально
npm install -g protractor
Шаг 3:
Повторно запустить обновление Webdriver-manager
Шаг 4:
Запуск Webdriver-manager не выдаст ошибок
У меня была такая же проблема.
Это решено обновлением Protractor с 5.4.1 до 5.4.2. 👍
https://github.com/angular/protractor/issues/5224#issuecomment -486873791
Привет @cnishina , я сделал "удалить каталог node_modules и переустановить или выполнить npm install -f", но не решил мою проблему: см. Ниже:
├─┬ [email protected]
│ ├── @ types / [email protected]
│ ├── @ типы / [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] списано
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └── [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected] выведен
│ ├─┬ [email protected]
│ │ ├── фс. [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected] с дедупликацией
│ │ │ └── [email protected]
│ ├── │ [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected] выведен из строя
│ │ ├─┬ [email protected]
│ │ │ └── [email protected] с дедупликацией
│ │ └── [email protected] выведен
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── фс. [email protected] удален
│ │ │ ├── [email protected] выведен из строя
│ │ │ ├── [email protected] deduped
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected] удален
│ │ │ ├── [email protected] с дедупликацией
│ │ │ └── [email protected] удален
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ └── [email protected] удален
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── Немедленно@3.0.6
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected] deduped
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected] удален
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └── [email protected] удален
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected] удален
│ │ ├─┬ [email protected]
│ │ │ └── [email protected] удален
│ │ └── [email protected] с дедупликацией
│ ├─┬ [email protected]
│ │ └── [email protected] удален
│ ├─┬ [email protected]
│ │ ├── @ types / [email protected] выведен из строя
│ │ └── [email protected] с дедупликацией
│ └─┬ [email protected]
│ ├── [email protected]
│ ├── [email protected] выведен
│ ├─┬ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── фс. [email protected] удален
│ │ │ │ ├── [email protected] с дедупликацией
│ │ │ │ ├── [email protected] deduped
│ │ │ │ ├─┬ [email protected]
│ │ │ │ │ └── [email protected] удален
│ │ │ │ ├── [email protected] с дедупликацией
│ │ │ │ └── [email protected] удален
│ │ │ ├── [email protected] удален
│ │ │ ├── [email protected] удален
│ │ │ └── [email protected] выведен из строя
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected] удален
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ └── [email protected] удален
│ ├── [email protected] удален
│ ├── [email protected]
│ ├── [email protected] с дедупликацией
│ ├── [email protected] списан
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ ├── │ [email protected]
│ │ ├─┬ комбинированный[email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ ├── │ [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├── комбинированный[email protected] с дедупликацией
│ │ │ └── [email protected] с дедупликацией
│ │ ├─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ └── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected] выведен из строя
│ │ │ │ ├── [email protected]
│ │ │ │ ├── [email protected]
│ │ │ │ └─┬ [email protected]
│ │ │ │ ├── [email protected] с дедупликацией
│ │ │ │ ├── [email protected] удален
│ │ │ │ └── [email protected] выведен из строя
│ │ │ └─┬ [email protected]
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected] выведен из строя
│ │ │ ├── [email protected] с дедупликацией
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected] удален
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected] выведен из строя
│ │ │ ├─┬ [email protected]
│ │ │ │ ├── [email protected] выведен из строя
│ │ │ │ └── [email protected] выведен из строя
│ │ │ ├─┬ [email protected]
│ │ │ │ └── [email protected] выведен из строя
│ │ │ ├── [email protected]
│ │ │ ├── [email protected] с дедупликацией
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected] удален
│ │ ├─┬ [email protected]
│ │ │ ├── [email protected]
│ │ │ └── [email protected]
│ │ ├─┬ [email protected]
│ │ │ └── [email protected] выведен из строя
│ │ └── [email protected]
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ ├── фс. [email protected] удален
│ │ ├── [email protected] выведен из строя
│ ├── │ [email protected] deduped
│ │ ├─┬ [email protected]
│ │ │ └── [email protected] выведен из строя
│ │ ├── [email protected] с дедупликацией
│ │ └── [email protected] выведен
│ ├── [email protected]
│ └─┬ [email protected]
│ ├── [email protected]
│ └── [email protected]
Но я добавил в свой package.json зависимости:
"webdriver-manager": "^ 12.1.2"
И исправил проблему.
@cnishina Спасибо за быстрый ответ по этому вопросу.
У меня такая же проблема.
Это решается обновлением Транспортира с 5.4.1 до 5.4.2.👍
# 5224 (комментарий)
Благодаря !!!!
Что касается StackOverflow, я попытался найти сообщение для ответа. В итоге я создал вопрос и ответил на него:
У меня есть краткое объяснение того, что делает обновление webdriver-manager и почему это произошло. Можем ли мы проголосовать за видимость?
Может я не понимаю, как определять версии? Я обновил свой package.json, включив "protractor": "^5.4.2"
, но после удаления node_modules и переустановки я вижу, что node_modules/protractor/package.json
имеет "webdriver-manager": "^12.0.6"
(и проблема загрузки zip.jar).
Может я не понимаю, как определять версии? Я обновил свой package.json, включив
"protractor": "^5.4.2"
, но после удаления node_modules и переустановки я вижу, чтоnode_modules/protractor/package.json
имеет"webdriver-manager": "^12.0.6"
(и проблема загрузки zip.jar).
Установлен ли у вас транспортир по всему миру?
Нет, я использую ./node_modules/protractor/bin/protractor
и вижу, что which protractor
ничего не дает.
при запуске webdriver-manager version
вы тоже получаете версию 12.0.6?
Я имею в виду, что package.json не был изменен для транспортира 5.4.2, просто webdriver-manager - это обновленная версия
У меня он не установлен глобально. Я помню, когда я начинал этот проект, мне потребовалось некоторое время, чтобы обнаружить, что нужно обновить веб-драйвер внутри транспортира с помощью ./node_modules/protractor/bin/webdriver-manager update
. Когда я проверяю эту версию:
$ ./node_modules/protractor/bin/webdriver-manager version
[16:29:49] I/version - webdriver-manager 12.1.1
Так кажется лучше, правда? Тем не мение,
$ ./node_modules/protractor/bin/webdriver-manager update
[16:31:28] I/file_manager - creating folder /home/man/logicgate/dev/logicgate/platform/client/node_modules/protractor/node_modules/webdriver-manager/selenium
[16:31:28] I/config_source - curl -o/home/man/logicgate/dev/logicgate/platform/client/node_modules/protractor/node_modules/webdriver-manager/selenium/standalone-response.xml https://selenium-release.storage.googleapis.com/
[16:31:28] I/config_source - curl -o/home/man/logicgate/dev/logicgate/platform/client/node_modules/protractor/node_modules/webdriver-manager/selenium/chrome-response.xml https://chromedriver.storage.googleapis.com/
[16:31:28] I/config_source - curl -o/home/man/logicgate/dev/logicgate/platform/client/node_modules/protractor/node_modules/webdriver-manager/selenium/gecko-response.json https://api.github.com/repos/mozilla/geckodriver/releases
[16:31:29] I/downloader - curl -o/home/man/logicgate/dev/logicgate/platform/client/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.46.zip https://chromedriver.storage.googleapis.com/2.46/chromedriver_linux64.zip
[16:31:29] I/downloader - curl -o/home/man/logicgate/dev/logicgate/platform/client/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-4.0.0-alpha-1.zip.jar https://selenium-release.storage.googleapis.com/4.0/selenium-server-standalone-4.0.0-alpha-1.zip
...
т.е. alpha zip !, что приводит к повреждению jar-файла при запуске.
Так что вы должны быть в курсе последних событий. Последняя версия - 12.1.4. Предыдущие версии 12 не будут работать, потому что загружаемый файл изменился. Ознакомьтесь с инструкциями по обновлению выше.
Я сделал апгрейд. Позвольте мне попытаться объяснить еще раз, потому что это очень сбивает с толку: в игре есть два разных определения webdriver-manager.
В package.json в моем проекте "protractor": "^5.4.2"
. Я никогда не включал явно "webdriver-manager". Когда я запустил команду обновления, что и тянет за пакет selenium, я запустил ./node_modules/protractor/bin/webdriver-manager update
- взаимодействуя со сборкой webdriver, которая находится внутри каталога bin транспортира. Это глупо и требует обновления после того, как я установил node_modules, но он работал до критического изменения.
Добавление "webdriver-manager": "^12.1.4"
в мой package.json не влияет на то, какую версию использует транспортир. Я могу выполнить следующие действия:
npm install
в моем каталоге проектаnode_modules/protractor/package.json
чтобы обновить webdriver-manager до ^ 12.1.4.npm install
в node_modules/protractor/
./node_modules/protractor/bin/webdriver-manager update
чтобы доказать, что обновленный транспортир / bin / webdriver-manager получит правильную версию. Но я не собираюсь работать «Теперь отредактируйте post-install protractor package.json» в нашем конвейере CI. Есть ли другой способ заставить транспортир использовать последнюю версию webdriver-manager?
Можете ли вы обновить свой package.json и добавить webdriver-manager в devDependencies? Это устранило проблему для меня.
В приведенном выше эксперименте транспортир и webdriver-manager (при добавлении) находились в devDependencies.
Вы проверили, что ваша версия 12.1.4 при запуске ./node_modules/protractor/bin/webdriver-manager update
? Есть два способа сделать это:
Запустить node_modules/.bin/webdriver-manager version
Транспортир (по умолчанию) должен загрузить версию ^ 12.0.4, что означает, что он должен получить версию 12.1.4. Если вы все еще получаете файл .zip.jar, это означает, что у вас старая версия и вам необходимо ее обновить.
Не рекомендую добавлять его в devDependencies. Вот почему:
Допустим, если Protractor обновится до версии ./node_modules/protractor/bin/webdriver-manager update
, вам не гарантируется, что вы запустите версию 12 или 13. Когда Protractor вызывает файлы, он, надеюсь, будет использовать версию 13. Если ваши файлы были загружены с 12, то эти файлы не будут существовать. когда транспортир требует их.
"protractor": "^5.4.2"
в devDependencies, webdriver-manager нигде$ rm -rf node_modules
npm install
cat node_modules/protractor/package.json|grep webdr
"webdriver-manager": "bin/webdriver-manager"
"@types/selenium-webdriver": "^3.0.0",
"selenium-webdriver": "3.6.0",
"webdriver-js-extender": "2.1.0",
"webdriver-manager": "^12.0.6"
Транспортир (по умолчанию) должен загрузить версию ^ 12.0.4, что означает, что он должен получить версию 12.1.4.
Имеет смысл. И все еще:
$ ./node_modules/protractor/bin/webdriver-manager version
`[11:19:58] I/version - webdriver-manager 12.1.1
В недоумении.
@mathpunk , есть ли здесь файл package-lock.json
который может заблокировать его до версии 12.1.1?
У нас есть интересный сценарий в нашей организации, так как у нас есть собственный пакет npm, связанный с автоматизацией (во внутреннем реестре), который абстрагирует автоматизацию от наших SPA и приложений. Этот пакет использует транспортир 5.4.2 и не использует файл package-lock.json, поскольку мы видели некоторые проблемы, связанные с тем, как npm выводит зависимости зависимостей, что мешает некоторым нашим путям. Как бы то ни было, установка версии нашего пакета автоматизации, которая имеет транспортир в качестве зависимостей в SPA и приложениях, использующих файлы package-lock.json, по-прежнему приводит к использованию webdriver-manager 12.1.1. npm i
установит это как первоклассный гражданин, чего мы не хотим, потому что 12.1.4 и 12.1.1 все еще присутствуют. npm update --depth 9999 webdriver-manager
не работает так, как я ожидал, что приведет к обновлению с 12.1.1 до 12.1.4. Если не считать ручного изменения package-lock.json в каждом приложении-потребителе нашего пакета автоматизации или регенерации нового файла, чего мы не хотим, потому что он обновляет множество пакетов, которые мы хотим сохранить на месте, чтобы предотвратить работу регрессионного тестирования, я не знаю, что делать.
@cnishina , спасибо за всю работу, которую вы делаете над Protractor. Поддержите ли вы PR ветки, ответвленной от 5.4.2 , которая обновит только webdriver-manager до 12.1.4?
@simonua Вы его взломали! Удалил package-lock.json, удалил node_modules, установил, получил webdriver-manager 12.1.4. Я не понимаю, почему версии определены в двух разных местах в этой экосистеме, но проблема решена ~
Рад, что сделал это. Из любопытства, если вы отмените свои изменения и запустите npm i [email protected]
с той явной версией, которую хотите, я подозреваю, что вы будете в хорошей форме. Вы получите преимущество в том, что другие версии останутся нетронутыми, что ограничивает подверженность регрессии.
Такая же проблема здесь
Просто скачайте нужный файл с сайта selenium https://selenium-release.storage.googleapis.com/index.html?path=4.0/
Я взял файл jar и изменил имя с * .jar на * .zip.jar
работал нормально
Самый полезный комментарий
Завтра выйдет новый релиз.