Playwright运行测试报错Cannot find module,无法导入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
相关产品推荐
相关产品推荐

