You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WebdriverIO无法启动Chrome浏览器,遇ts-node/esm模块加载错误求助

WebdriverIO启动Chrome失败,出现ts-node钩子链错误

我是WebdriverIO新手,跟着YouTube教程搭建项目并编写了启动Chrome的简单代码,但Chrome始终无法启动,尝试多种配置方法仍未解决。执行npx wdio run .\wdio.conf.js命令后,日志显示ChromeDriver已成功启动,但抛出"ts-node/esm/transpile-only 'resolve'" did not call the next hook in its chain错误,测试执行失败。

命令执行日志

PS C:\Users\User\OneDrive\Documents\Webdriver-io-examples> npx wdio run .\wdio.conf.js

Execution of 1 workers started at 2023-04-06T21:06:17.713Z

2023-04-06T21:06:17.867Z INFO chromedriver: Initiate Chromedriver Launcher (v8.1.1)
2023-04-06T21:06:17.869Z INFO @wdio/cli:launcher: Run onPrepare hook
2023-04-06T21:06:17.877Z INFO chromedriver: Start Chromedriver (C:\Users\User\OneDrive\Documents\Webdriver-io-examples\node_modules\chromedriver\lib\chromedriver\chromedriver.exe) with args --port=9515 --url-base=/
2023-04-06T21:06:25.576Z INFO chromedriver: Starting ChromeDriver 112.0.5615.49 (bd2a7bcb881c11e8cfe3078709382934e3916914-refs/branch-heads/5615@{#936}) on port 9515
2023-04-06T21:06:25.577Z INFO chromedriver: Only local connections are allowed.
2023-04-06T21:06:25.578Z INFO chromedriver: Please see https://chromedriver.chromium.org/security-considerations for 
suggestions on keeping ChromeDriver safe.
2023-04-06T21:06:25.597Z INFO chromedriver: ChromeDriver was started successfully.
2023-04-06T21:06:25.638Z INFO @wdio/cli:launcher: Run onWorkerStart hook
2023-04-06T21:06:25.642Z INFO @wdio/local-runner: Start worker 0-0 with arg: run,.\wdio.conf.js
[0-0] Error: "ts-node/esm/transpile-only 'resolve'" did not call the next hook in its chain and did not explicitly signal a shor[0-0]     at new NodeError (node:internal/errors:399:5)
[0-0]     at ESMLoader.resolve (node:internal/modules/esm/loader:846:13)
[0-0]     at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:7)
[0-0] FAILED
2023-04-06T21:06:26.287Z INFO @wdio/cli:launcher: Run onWorkerEnd hook
2023-04-06T21:06:26.288Z INFO @wdio/cli:launcher: Run onComplete hook

Spec Files:      0 passed, 1 failed, 1 total (100% completed) in 00:00:08

2023-04-06T21:06:26.294Z INFO @wdio/local-runner: Shutting down spawned worker
2023-04-06T21:06:26.547Z INFO @wdio/local-runner: Waiting for 0 to shut down gracefully
2023-04-06T21:06:26.549Z INFO @wdio/local-runner: shutting down

项目结构

项目结构

package.json配置

{
  "name": "webdriver-io-examples",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "wdio": "wdio run ./wdio.conf.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@wdio/cli": "^8.7.0",
    "@wdio/local-runner": "^8.7.0",
    "@wdio/mocha-framework": "^8.7.0",
    "@wdio/spec-reporter": "^8.7.0",
    "chromedriver": "^112.0.0",
    "wdio-chromedriver-service": "^8.1.1"
  }
}

解决方法

这个错误根源是项目缺少TypeScript相关依赖,或者ES模块钩子配置异常,按以下步骤排查修复:

  1. 补全TypeScript相关依赖
    你的package.json里未安装TypeScript和ts-node,先执行:

    npm install -D typescript ts-node @types/node @types/mocha
    
  2. 修正wdio.conf.js的编译配置
    打开wdio.conf.js,找到autoCompileOpts部分(如果没有则添加),确保配置如下:

    autoCompileOpts: {
        autoCompile: true,
        tsNodeOpts: {
            project: './tsconfig.json',
            transpileOnly: true
        }
    }
    
  3. 添加tsconfig.json配置文件
    在项目根目录新建tsconfig.json,复制以下内容:

    {
        "compilerOptions": {
            "module": "commonjs",
            "target": "ES2020",
            "esModuleInterop": true,
            "skipLibCheck": true,
            "outDir": "./dist"
        },
        "include": ["./test/**/*.ts"]
    }
    
  4. 检查测试文件格式
    确认测试脚本是.ts后缀;如果是.js文件,要么改成.ts,要么在tsconfig.json的include数组中加入"./test/**/*.js"。

  5. 重置依赖缓存
    若以上操作后仍报错,清理旧依赖重新安装:

    rm -rf node_modules package-lock.json
    npm install
    

内容的提问来源于stack exchange,提问作者Learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:27:23