运行node app.js遇Puppeteer启动浏览器EACCES错误求助
解决Puppeteer指定Chromium路径时的EACCES错误
我来帮你搞定这个Puppeteer的权限问题——你遇到的EACCES错误核心原因其实是路径指向错误,再加上可能的权限配置问题,咱们一步步解决:
1. 修正可执行文件路径(最关键)
macOS下的.app本质是一个目录包,你直接指定Chromium.app的路径是没用的,真正的可执行文件藏在包内部的Contents/MacOS目录里。你需要把executablePath指向这个实际的二进制文件:
修改你的launch代码:
const browser = await puppeteer.launch({ headless: false, executablePath: '/Users/iliebogdanbarbulescu/Downloads/firstProject/node_modules/chromium/lib/chromium/chrome-mac/Chromium.app/Contents/MacOS/Chromium' });
2. 确保文件有可执行权限(可选补充)
如果上面的修改后还是报错,打开终端执行下面的命令,给Chromium二进制文件添加可执行权限:
chmod +x /Users/iliebogdanbarbulescu/Downloads/firstProject/node_modules/chromium/lib/chromium/chrome-mac/Chromium.app/Contents/MacOS/Chromium
这个命令能确保Node进程有足够权限去启动这个可执行文件。
为什么不指定路径能正常运行?
当你省略executablePath时,Puppeteer会自动定位到它内置的Chrome/Chromium二进制文件,并且已经提前处理好了路径和权限配置,所以能顺利启动。
内容的提问来源于stack exchange,提问作者bibscy
相关产品推荐
相关产品推荐

