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

Deno单元测试调用puppeteer.launch触发os error 2无文件或目录报错

报错根因

No such file or directory (os error 2) 报错触发在puppeteer.launch()行,完全是Puppeteer依赖相关问题,和测试业务逻辑无关:Deno环境下的Puppeteer默认不会自动下载绑定的Chromium/Chrome浏览器二进制,启动时找不到可执行的浏览器程序就会抛出这个系统级错误。

修复方案

按以下步骤排查处理即可:

  • 先确认本地已安装Chrome/Chromium浏览器,记录好可执行文件的本地路径,常见默认路径参考:
    • Windows:C:\Program Files\Google\Chrome\Application\chrome.exe
    • macOS:/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
    • Linux:/usr/bin/google-chrome 或 /usr/bin/chromium
  • 在puppeteer.launch()配置项中显式指定浏览器可执行文件路径,修改后的启动代码如下:
const browser = await puppeteer.launch({
  headless: true,
  // 替换为你本地的Chrome/Chromium实际安装路径
  executablePath: "/usr/bin/google-chrome"
})
  • 如果不想手动安装浏览器,也可以使用Deno适配版本的Puppeteer,运行测试时追加参数自动下载对应版本浏览器:
    deno test --allow-all --unstable your_test_file.ts --puppeteer-product=chrome
    
    注意运行测试时需要给Deno开放对应权限:--allow-read、--allow-write(用于缓存下载的浏览器文件)、--allow-run(用于启动浏览器子进程)、--allow-net(用于页面访问、下载浏览器资源),本地测试环境可以直接用--allow-all简化配置。
  • 如果你是通过npm兼容模式导入的Puppeteer,先执行npx puppeteer browsers install chrome手动下载对应版本的浏览器,再运行测试即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 04:36:23