Ошибка: недопустимый или поврежденный файл jar. - PullRequest
6 голосов
/ 26 апреля 2019

При запуске webdriver-manager update он загружает файл с -alpha-1.zip.jar. Это не правильный формат файла. Пример ниже - просто загрузить автономный файл jar селена:

> ./webdriver-manager update --standalone --chrome false --gecko false

webdriver-manager: using global installed version 12.1.1
[13:34:08] I/downloader - curl -o/path/to/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

Это неверный файл при попытке запустить webdriver-manager start. Что происходит и как мы можем это исправить?

1 Ответ

9 голосов
/ 26 апреля 2019

Для контекста, что происходило в 12.1.1?

Мы загружаем XML-файл с https://selenium -release.storage.googleapis.com .Этот XML-файл ранее не имел файлов .zip.Таким образом, обновление webdriver-manager нашло бы последние новости из этого списка.Для 3.141/selenium-server-standalone-3.141.59 XML-содержимое содержит только файл jar:

<Contents>
  <Key>3.141/selenium-server-standalone-3.141.59.jar</Key>
  <Generation>1542184006302312</Generation>
  <MetaGeneration>1</MetaGeneration>
  <LastModified>2018-11-14T08:26:46.300Z</LastModified>
  <ETag>"947e57925b4185ae04d03ceec175a34a"</ETag>
  <Size>10649948</Size>
</Contents>

Когда был выпущен 4.0.0-alpha.1, xml-файл имеет расширение jar и zip:

<Contents>
  <Key>4.0/selenium-server-standalone-4.0.0-alpha-1.jar</Key>
  <Generation>1556122620115927</Generation>
  <MetaGeneration>1</MetaGeneration>
  <LastModified>2019-04-24T16:17:00.115Z</LastModified>
  <ETag>"ac553ec987d16d2af8c8e3ef9061772c"</ETag>
  <Size>12564804</Size>
</Contents>
<Contents>
  <Key>4.0/selenium-server-standalone-4.0.0-alpha-1.zip</Key>
  <Generation>1556122620996687</Generation>
  <MetaGeneration>1</MetaGeneration>
  <LastModified>2019-04-24T16:17:00.996Z</LastModified>
  <ETag>"1974b11f970bad6e15c84e3840ec3897"</ETag>
  <Size>12342093</Size>
</Contents>

Во время загрузки требовался первый ключ содержимого, соответствующий последней версии.Таким образом, предполагалось, что это будет файл JAR и не проверять расширение файла.Как часть процесса переименования, он будет генерировать имя файла.Это был шаблон, используемый для chromedriver, где мы добавляли версию к двоичному файлу.Таким образом, двоичный файл chromedriver будет переименован в chromedriver_2.44.Вот почему у нас есть файл .zip.jar.

Кроме того, мы не загружали бета-версии файлов JAR.Другая проблема заключается в том, что он загружает альфа-версию.

Как обновить менеджер веб-драйвера до 12.1.4?

Huzzah!Это проблема, которая теперь решается с помощью webdriver-manager@12.1.2, выпущенного вчера утром.Но 12.1.4 имеет все остальные исправления (Подробнее здесь: При использовании Protractor 5.4.2, webdriver-manager загружает 2.46, который не совместим с Chrome 74 )

Исправляет загрузку.zip файл и переименование его в .zip.jar.Он будет загружать только файлы JAR.Также мы не скачиваем альфа и бета версии фляги.Мы должны использовать стабильные версии автономного сервера selenium.

Для обновления до 12.1.4, если вы используете Protractor:

  • Он должен получить последнюю версию webdriver-manager на основе "webdriver-manager": "^ 12.0.6" .Таким образом, чтобы получить это, вам нужно будет принудительно установить модули вашего узла (npm install -f) или очистить рабочее пространство (удалить модули узла и выполнить новую установку).

Если вы используете веб-драйвер-manager установлен глобально:

  • npm install -g webdriver-manager@12.1.4

Ссылки

Проблемы, которые отслеживаются в Protractor и диспетчере веб-драйверов: - angular / транспортир # 5224 - angular / webdriver-manager # 370

Исправление было в запросе на извлечение: angular / webdriver-manager # 371 .

Другой пост для StackOverflow для других исправлений: При использовании Protractor 5.4.2, webdriver-manager загружает 2.46, который не совместим с Chrome 74

...