jdk、节点和 webdriver 升级后无法启动 webdriver-manager

Can't start webdriver-manager after upgrading of jdk, node & webdriver

我已经将 Node、Protractor、JDK 和 webdriver 升级到最新版本。 现在我不能再通过 CMD 和 Node 命令行启动 webdriver-manager。

有什么想法吗?

错误: 您的环境已设置为使用 Node.js 0.12.2 (x64) 和 npm。

C:\Users\idan>cd c:\automation\tests\node_modules\protractor\bin

c:\automation\tests\node_modules\protractor\bin>webdriver-manager start
selenium.pid: 6484
'java' is not recognized as an internal or external command,
operable program or batch file.
Selenium Standalone has exited with code 1

c:\automation\tests\node_modules\protractor\bin>

您需要安装 jdk 并设置 JAVA_HOME 环境变量:

  • How to set java_home on Windows 7?

另见:

  • 'Java' is not recognized as an internal or external command

是的,无论谁制作了 webdriver-manager,都做了太多假设...:S

在我的机器上找到 webdriver-manager\built\lib\cmds\start.js

C:\Users\XYZ\AppData\Roaming\npm\node_modules\protractor\node_modules\webdriver-manager\built\lib\cmds\start.js

找到以

开头的行
var seleniumProcess = spawnCommand

将那行 和前面的行 替换为

logger.info(process.env.JAVA_HOME+'\bin\java.exe' + argsToString);
var seleniumProcess = spawnCommand(process.env.JAVA_HOME+'\bin\java.exe', args);

设置您的 JAVA_HOME 即可。

如果您不知道如何设置 JAVA_HOME,请执行以下操作:

运行 命令提示符 (cmd.exe) 具有管理员权限,然后 运行

dir c:\java.exe /s/a/b

一段时间后,你会得到至少一行文字如

C:\Dev\Java\JDK\jre\bin\java.exe

如果您没有看到文本行,则表明 C 盘上没有 java。 :( 重复其他字母或安装 Java JRE。

选择这些文本行中的任何一行。您的 java_home 是那行文本 except bin\java.exe。要设置它,在我的情况下我会这样做:

setx /m JAVA_HOME C:\Dev\Java\JDK\jre\

setx 将在机器范围内永久设置 JAVA_HOME。如果要为当前用户永久设置 JAVA_HOME,请删除 /m 参数。如果你想临时设置 JAVA_HOME,只对打开的 "Command Prompt" window 这样做:

set JAVA_HOME=C:\Dev\Java\JDK\jre\

祝你好运。

我运行命令

webdriver-manager start

并收到上述错误消息。

然后按照 说明解决了这个问题,终于成功了。但在此之前,我还必须安装 JDK。这是完整的步骤。

  1. 我搜索了 安装 java jdk windows 10 64 位 并最终找到了这个 Java JDK Installation.

  2. 滚动了一下并点击了 JDK Installation Instructions for Windows

  3. 按照那里的说明,再次寻找 Java SE Development Kit 10 Downloads 并在 Java SE Development Kit 13 Downloads 页面结束.这似乎是目前最新的

  4. 已下载 Windows x64 安装程序。文件名看起来像这样 jdk-13.0.2_windows-x64_bin.exe。 13好像是最新的。

  5. 在我的机器上,查看 C:\Program Files\Java。此 JAVA 文件夹尚不存在。

  6. 运行 以管理员权限下载的 exe。

  7. 确保通过查看 C:\Program Files\Java 安装了 java。我在里面有一个文件夹 C:\Program Files\Java\jdk-13.0.2。

  8. 现在遵循 说明。打开命令提示符和 运行

    dir c:\java.exe /s/a/b 
    

    确认我的路径是c:\Program Files\Java\jdk-13.0.2\bin\java.exe

  9. 现在我 运行,在同一个管理命令提示符下,

    setx /m JAVA_HOME "c:\Program Files\Java\jdk-13.0.2"
    
    setx JAVA_HOME "c:\Program Files\Java\jdk-13.0.2"
    
  10. 终于抓住了start.js。我的位于 C:\Users\XYX\AppData\Roaming\npm\node_modules\protractor\node_modules\webdriver-manager\built\lib\cmds

  11. 评论了以下几行

    //logger.info('java' + argsToString);
    //let seleniumProcess = utils_1.spawn('java', args, stdio);`
    

    并替换为

    logger.info(process.env.JAVA_HOME+'\bin\java.exe' + argsToString);
    let seleniumProcess = utils_1.spawn(process.env.JAVA_HOME+'\bin\java.exe', args, stdio); 
    
  12. 现在运行命令

    webdriver-manager start
    

    终于明白了。 - Selenium 服务器已启动并且运行正在端口 4444

  13. 上运行

所有这些步骤都非常痛苦。