升级Playwright版本后出现MODULE_NOT_FOUND错误求助
解决Playwright Java更新后找不到package.json的报错
问题分析
这个报错是Playwright Java绑定在临时目录生成的Node.js运行环境缺失package.json导致的——Playwright Java会自动下载Node.js和配套的Playwright Node模块到系统临时目录,但新版本可能因解压不完全、权限限制或杀毒软件拦截,导致关键文件未被正确释放,测试执行完销毁上下文时调用Har跟踪模块就会触发找不到文件的错误。
解决方案
清理缓存与重新构建
- 手动删除系统临时目录下所有以
playwright-java-开头的文件夹(路径:C:\Users\ADAMMY~1\AppData\Local\Temp) - 执行Maven命令强制清理并重新拉取依赖:
这会让Playwright Maven插件重新下载完整的Node.js和Playwright资源包,避免之前的残缺缓存。mvn clean install -DskipTests
- 手动删除系统临时目录下所有以
检查Maven依赖配置
确保pom.xml中使用官方的Playwright依赖和插件,避免第三方修改的版本:<!-- Playwright核心依赖 --> <dependency> <groupId>com.microsoft.playwright</groupId> <artifactId>playwright</artifactId> <version>[你的最新版本号]</version> </dependency> <!-- 用于自动安装浏览器和Node环境的插件 --> <plugin> <groupId>com.microsoft.playwright</groupId> <artifactId>playwright-maven-plugin</artifactId> <version>[你的最新版本号]</version> <executions> <execution> <goals> <goal>install</goal> </goals> </execution> </executions> </plugin>注意:依赖和插件的版本号要保持一致。
临时禁用跟踪/Har录制
如果报错触发点是HarTracer.stop,检查测试代码中是否开启了Har录制或跟踪功能,暂时注释相关代码(比如context.tracing().start()或route.har()),确认是否能消除报错,这可以快速定位是否是跟踪模块的资源缺失问题。手动指定Node.js路径
绕过临时目录的残缺Node环境,直接使用本地安装的完整Node.js:import com.microsoft.playwright.Playwright; import java.nio.file.Paths; public class PlaywrightSetup { public static void main(String[] args) { try (Playwright playwright = Playwright.create( new Playwright.CreateOptions() .setExecutablePath(Paths.get("C:\\Program Files\\nodejs\\node.exe")))) { // 你的测试逻辑 } } }本地Node.js可从官方渠道安装后获取路径。
内容的提问来源于stack exchange,提问作者Adam Myczkowski
相关产品推荐
相关产品推荐

