"Error: not found: java" when running webdriver.io test

"Error: not found: java" when running webdriver.io test

我正在尝试从 VS Code 调试器 运行 webdriver.io test suite,但失败并显示错误消息:

ERROR @wdio/cli:utils: A service failed in the 'onPrepare' hook
Error: not found: java
at getNotFoundError (/Users/andrew/projects/rod-licensing-tests/packages/frontend-acceptance-tests/node_modules/selenium-standalone/node_modules/which/which.js:10:17)

我该如何解决这个问题?通过查看网络上的类似问题,我尝试了以下相同的结果:

  1. npm install
  2. 正在使用 npm install java
  3. 安装 Java
  4. 使用 ./node_modules/.bin/selenium-standalone install
  5. 安装 selenium-standalone
  6. 正在向我的 launch.json 配置添加环境变量:"JAVA_HOME": "/usr/libexec/java_home"
  7. 正在将我的 Mac 上的 Java 更新为 Java 8 通过系统偏好设置更新 271

测试 运行 使用 Docker 成功完成,但理想情况下我也希望 运行 从 IDE 进行此测试,以便我可以快速启动和调试他们。此外,我的同事可以 运行 使用 IntelliJ IDE Ultimate 中的配置进行相同的测试,但我觉得这在 VS Code 中也应该可行。

这是我的 launch.json 文件的当前内容:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch via NPM",
      "type": "pwa-node",
      "args": [
        "conf/local.conf.js",
        "--logLevel trace"
      ],
      "cwd": "${workspaceFolder}/packages/frontend-acceptance-tests",
      "env": {
        "JAVA_HOME": "/usr/libexec/java_home",
        "SERVICE_URL": "[redacted]",
        "OAUTH_AUTHORITY_HOST_URL": "[redacted]",
        "OAUTH_TENANT": "[redacted]",
        "OAUTH_CLIENT_ID": "[redacted]",
        "OAUTH_CLIENT_SECRET": "[redacted]",
        "OAUTH_SCOPE": "[redacted]",
        "DYNAMICS_API_PATH": "[redacted]",
        "DYNAMICS_API_VERSION": "9.1"
      },
      "request": "launch",
      "runtimeExecutable": "${workspaceFolder}/packages/frontend-acceptance-tests/node_modules/.bin/wdio",
      "runtimeVersion": "14.13.0"
    }
  ]
}

我对 Node.JS 还很陌生,所以仍在学习它是如何组合在一起的。任何建议表示赞赏!

您通常需要使用 Java 版本 1.8 配置您的项目 sdk,可以从此 link:

安装

https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

但我看你已经试过了。也许您需要将 selenium jar 文件添加到项目的依赖项中。

如果我们使用 selenium-standalone-service 进行 运行 测试,则需要安装 JAVA-JDK。 package.json

中也应提供以下依赖项
{
    "devDependencies": {
        "@wdio/selenium-standalone-service": "^6.6.1"
    }
}

>npm install @wdio/selenium-standalone-service --save-dev

用于VScode调试

根据 documentation we will need JavaScript Debugger (Nightly) 启用。

示例 .vscode/launch.json 应该看起来像

{
    "name": "run select spec",
    "type": "node",
    "request": "launch",
    "args": ["wdio.conf.js", "--spec", "${file}"],
    "cwd": "${workspaceFolder}",
    "autoAttachChildProcesses": true,
    "program": "${workspaceRoot}/node_modules/@wdio/cli/bin/wdio.js",
    "console": "integratedTerminal"
},

示例:launch.json