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

Playwright运行测试报错Cannot find module,无法导入Button类

解决Playwright测试中无法找到自定义Button模块的问题

针对你遇到的Cannot find module错误,以下是几个关键排查和解决步骤:

1. 确保Button类正确导出

你的Button.ts代码缺少导出语句,导致测试文件无法正确识别并导入这个类。修改Button.ts:

// Button.ts
export default class Button extends BaseElement {}
// 若使用命名导出,可改成:
// export class Button extends BaseElement {}

如果采用命名导出,导入语句需要对应调整:

import { Button } from "../controls/Button";

2. 导入时明确添加文件扩展名

Playwright运行时依赖Node.js模块解析,部分场景下需要明确指定.ts扩展名。尝试修改导入语句:

import Button from "../controls/Button.ts";

3. 检查TypeScript配置(tsconfig.json)

确保tsconfig.json的模块解析配置与Playwright运行环境兼容:

  • 确认moduleResolution设置为node(CommonJS模式)或node16/nodenext(ES模块模式)
  • 若使用路径别名,需配置baseUrl和paths,并确保Playwright能识别这些别名(可在playwright.config.ts中补充相关解析配置)

示例关键配置片段:

{
  "compilerOptions": {
    "moduleResolution": "node",
    "baseUrl": ".",
    "paths": {
      "@controls/*": ["controls/*"]
    }
  }
}

使用别名后,导入语句可简化为:

import Button from "@controls/Button";

4. 验证文件大小写一致性

尽管macOS文件系统大小写不敏感,但Node.js模块解析严格区分大小写。确认导入路径中的文件名与实际文件名完全匹配(比如Button.ts不能写成button.ts)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 20:25:29