错误:jarfile无效或损坏。/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-4.0.0-alpha-1.zip.jar

时间:2019-04-26 14:33:58

标签: protractor webdriver-manager

运行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 个答案:

答案 0 :(得分:9)

对于上下文,在12.1.1中发生了什么?

我们从https://selenium-release.storage.googleapis.com下载xml文件。该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>

在下载过程中,它采用的是与最新版本匹配的第一个Contents Key。因此,假设它是一个jar文件,并且不检查文件扩展名。作为重命名过程的一部分,它将生成文件名。这是用于chromedriver的模式,我们将版本附加到二进制文件上。因此,chromedriver二进制文件将重命名为chromedriver_2.44。这就是为什么我们有一个.zip.jar文件的原因。

此外,我们没有下载jar文件的beta版本。另一个问题是它正在下载Alpha版本。

如何将您的webdriver-manager更新到12.1.4?

Huzzah!这个问题已由昨天上午发布的webdriver-manager@12.1.2解决。但是12.1.4拥有所有其他修复程序(更多信息,请点击此处:When using Protractor 5.4.2, webdriver-manager downloads 2.46 which is not compatible with Chrome 74

它修复了下载.zip文件并将其重命名为.zip.jar的问题。它只会下载jar文件。另外,我们不下载jar的alpha和beta版本。我们应该使用稳定的Selenium独立服务器版本。

如果使用量角器,则要更新至12.1.4:

  • 它应该基于"webdriver-manager": "^12.0.6"获取最新版本的webdriver-manager。因此,为此,您需要强制安装节点模块(npm install -f)或清理工作区(卸下节点模块并重新安装)。

如果您使用的是全局安装的webdriver-manager:

  • npm install -g webdriver-manager@12.1.4

链接

在量角器和webdriver管理器中跟踪此问题的问题是: -angular/protractor#5224 -angular/webdriver-manager#370

此问题的解决方法是在拉取请求中:angular/webdriver-manager#371

有关StackOverflow的其他信息,用于其他修复:When using Protractor 5.4.2, webdriver-manager downloads 2.46 which is not compatible with Chrome 74