Selenium webdriver manager不被识别为内部或外部命令,尽管我在全局范围内安装了量角器(Jenkins)
我正试图通过执行以下命令来全局安装和下载Selenium二进制文件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管理器”未被识别为内部或外部驱动程序 命令、可操作程序或批
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),所以我不知道这个命令是否真的被执行了。