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

升级WebdriverIO至9.2.x后无法执行测试的解决咨询

解决WebdriverIO 9.2.1 + Node.js v22.1.0 中tsx --loader弃用报错问题

问题背景

长期使用WebdriverIO 8.32.3进行应用测试,升级至9.2.1后执行npm run TestX命令时触发报错:

node:internal/modules/run_main:125
triggerUncaughtException(
^
Error: tsx must be loaded with --import instead of --loader
The --loader flag was deprecated in Node v20.6.0 and v18.19.0
at initialize (file:///C:/Projects/TestAutomation.UITests.DesignQualityAndReleaseGovernance/node_modules/tsx/dist/esm/index.mjs:1:919)
at Hooks.addCustomLoader (node:internal/modules/esm/hooks:181:24)
at Hooks.register (node:internal/modules/esm/hooks:155:16)
at async initializeHooks (node:internal/modules/esm/utils:317:5)
at async customizedModuleWorker (node:internal/modules/esm/worker:109:13)

当前环境为Node.js v22.1.0。

解决方案

  • 替换命令中的弃用参数:打开项目的package.json,找到scripts里的TestX命令,将其中的--loader tsx替换为--import tsx。例如原命令是node --loader tsx ./test/specs/index.ts,修改后为node --import tsx ./test/specs/index.ts。
  • 升级tsx依赖:执行npm update tsx将tsx升级到最新版本,新版tsx已适配Node.js v20+的模块加载规则,避免因版本兼容导致的问题。
  • 检查WDIO配置文件:查看wdio.conf.ts或相关配置文件,确认是否存在引用--loader参数的配置项,如有则同步替换为--import或调整为符合新规则的配置方式。
  • 验证Node.js版本兼容性:WebdriverIO 9.x要求Node.js版本≥18.17,当前v22.1.0符合要求,若替换参数后仍有问题,可尝试降级至Node.js v20.x稳定版排查是否存在版本适配问题。

内容的提问来源于stack exchange,提问作者Dag André Nilsen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 07:37:14