Selenium webdriver manager不被识别为内部或外部命令,尽管我在全局范围内安装了量角器(Jenkins)

Selenium webdriver manager不被识别为内部或外部命令,尽管我在全局范围内安装了量角器(Jenkins),selenium,jenkins,protractor,Selenium,Jenkins,Protractor,我正试图通过执行以下命令来全局安装和下载Selenium二进制文件 npm install -g protractor webdriver-manager update webdriver-manager update --ie 当我直接从CMD或Powershell控制台执行它们时,它们工作正常。 不幸的是,当我试图从Jenkins(在完全相同的机器上)执行它们时,只有第一个命令被正确执行。下一个给出了一个错误: “webdriver管理器”未被识别为内部或外部驱动程序 命令、可操作程序或批

我正试图通过执行以下命令来全局安装和下载Selenium二进制文件

npm install -g protractor
webdriver-manager update
webdriver-manager update --ie
当我直接从CMD或Powershell控制台执行它们时,它们工作正常。 不幸的是,当我试图从Jenkins(在完全相同的机器上)执行它们时,只有第一个命令被正确执行。下一个给出了一个错误:

“webdriver管理器”未被识别为内部或外部驱动程序 命令、可操作程序或批处理文件

无论是从“执行windows批处理命令”步骤还是从“windows Powershell”步骤执行这些命令,都无关紧要


这是否意味着安装量角器时,
path
变量未更新?

您需要将npm全局软件包安装文件夹附加到
path
环境中。考虑到您运行Jenkins编写的脚本,建议不要修改Jenkins从机上的
路径
环境

1)更好的方法是使用项目的本地
量角器
webdriver manager

您应该将
量角器
作为依赖项添加到项目的
package.json中。然后通过
窗口批处理命令执行
npm install
以安装所有依赖项

之后,您可以分别从
/node\u modules/.bin/dragrator
/node\u modules/.bin/webdriver manager
获取
量角器
/webdriver manager

因此,您的
窗口批处理命令应该如下所示:

npm install
./node_modules/.bin/webdriver-manager update --proxy <your proxy>
./node_modules/.bin/webdriver-manager update --ie --proxy <your proxy>
npm config get prefix > prefix
set /P prefix=<prefix
set PATH=%prefix%;%PATH%

npm install -g protractor
webdriver-manager version
webdriver-manager update --proxy <your proxy>
webdriver-manager update --ie  --proxy <your proxy>

我已经在我的项目中使用了本地量角器…*但是*由于Jenkins机器上的网络代理阻止了对
webdriver update
尝试下载的文件的访问,当报告在代理上解锁它的请求时,我想向代理管理员展示最简单的命令。我不想通过引用本地webdriver来混淆他/她。我想告诉他:看,有一个非常简单的Jenkins作业,它失败了,因为代理(它在CMD控制台也失败了)。我更新了答案,动态修改
路径。对于代理问题,您可以将
--proxy
附加到
webdriver manager
命令。我不知道为什么,但我在Jenkins控制台(使用您的解决方案)中没有看到
webdriver manager update
的输出。因此,我编写了一个Powershell脚本,它(最后)给了我一个输出“``$npmPath=iex”npm config get prefix”pushd$npmPath./webdriver-manager-update./webdriver-manager-update--ie-popd``当您在选项2中使用我的解决方案时,是否仍遇到错误
“webdriver-manager”未被识别为内部或外部命令
?否,但我没有看到任何输出(应为无法建立隧道套接字,statusCode=403),所以我不知道这个命令是否真的被执行了。