使用Browsershot截图报错:找不到Chrome 119.0.6045.105版本
问题原因及解决办法
问题原因
- 版本绑定不匹配:Browsershot依赖的Puppeteer版本与你本地缓存的Chrome版本不兼容。Puppeteer每个版本都会绑定特定的Chrome/Chromium版本,你当前的Puppeteer需要Chrome 119.0.6045.105,而缓存里的115版本不符合要求,因此会报错找不到指定版本。
- 路径识别或权限问题:即便缓存目录存在115版本的Chrome,也可能出现两种情况:一是Browsershot/Puppeteer未读取到这个缓存路径;二是运行Browsershot的用户(比如Web服务器用户)没有访问该目录的权限,导致无法检测到已安装的Chrome。
- 自动下载失败:如果Puppeteer尝试自动下载所需的Chrome 119版本,但因网络或权限问题下载失败,也会触发找不到版本的错误。
解决办法
- 安装指定版本的Chrome:手动安装Puppeteer要求的Chrome版本,在项目根目录执行命令:
或者确保项目依赖的Puppeteer版本与Chrome 119匹配(比如Puppeteer 21.x对应Chrome 119),执行npx puppeteer browsers install chrome@119.0.6045.105npm install puppeteer@21同步版本。 - 强制指定现有Chrome路径:在代码中直接指定你已有的115版本Chrome的可执行文件路径,跳过版本检查:
注意先确认该路径下的Browsershot::url('https://example.com') ->setChromePath('/home/sail/.cache/puppeteer/chrome/linux-115.0.5790.170/chrome-linux64/chrome') ->save('screenshot.png');chrome可执行文件存在,且运行代码的用户有执行权限。 - 修复目录权限:调整缓存目录的权限,让运行Browsershot的用户能正常访问:
必要时可以将缓存目录迁移到Web服务器用户的权限范围内(比如chmod -R 755 /home/sail/.cache/puppeteer/chrome/var/www/.cache/puppeteer)。
内容的提问来源于stack exchange,提问作者Henry Bui
相关产品推荐
相关产品推荐

