google-chrome - Puppeteer 无法使用铬在无头模式下工作
问题描述
我在运行 Raspbian 10 的 Raspberry pi 上使用 Puppeteer 1.20.0 和 Chromium-browser v74。使用 Puppeteer Github 页面中的示例代码在无头禁用状态下运行 Puppeteer 时按预期工作,但是,如果我尝试在无头模式下运行它,我收到此错误并崩溃。
UnhandledPromiseRejectionWarning:错误:导航失败,因为浏览器已断开连接。
我的代码:
const puppeteer = require('puppeteer-core');
(async () => {
const browser = await puppeteer.launch({
args: ['--no-sandbox', '--disable-setuid-sandbox'],
executablePath: '/usr/bin/chromium-browser',
headless: true
});
const page = await browser.newPage();
await page.goto('https://youtube.com');
await page.screenshot({path: 'example.png'});
await browser.close();
})();
在另一台 Debian 10 机器上,相同的代码在无头和非无头的情况下都可以正常工作。他们都在运行 Puppeteer 1.20.0,唯一的区别是 Debian 机器运行的是 Google-chrome 77,而 Raspbian 运行的是 Chromium-browser 74。
编辑:
我还尝试了 puppeteer-core 版本 1.13.0,这是 chromium 74 的推荐版本,但它在无头模式下也不起作用。
解决方案
我终于能够运行 puppeteer ......但不能在 Raspbian buster 上运行。以下是我成功运行 puppeteer 的环境的详细信息:
- Linux raspberrypi 4.19.66-v7+ #1253 SMP Thu Aug 15 11:49:46 BST 2019 armv7l GNU/Linux
- Raspbian 拉伸 (2019-04-08-raspbian-stretch)
- NodeJS v12.10.0 和 npm v6.10.3(来自 nodesource)
- puppeteer-core@1.11.0
chromium-browser
Chromium 72.0.3626.121基于 Raspbian 构建,在 Raspbian 9.11 上运行
我没有使用从 下载的铬puppeteer
,我使用了 raspbian 附带的铬并添加了"executablePath"
配置,所以我只能使用"puppeteer-core"
推荐阅读
- mqtt - Mosquitto bridge broker, connection refused after connecting
- django - 在 django 的简单查询中使用 select_related
- python - 如何使用熊猫从 csv 行创建嵌套数组?
- javascript - 在对象数组中按键获取元素
- reactjs - 无法为从 firebase 数据库中获取的项目分配 id
- python - 姜戈芹菜。如何在准确的时间运行任务?
- ftp - 复制数据 ADF 时出错:FTP 无法获取文件长度
- react-native - 如何使用 react native cli 在实时流媒体视频中创建叠加层
- bitbucket - BitBucket:如何在 bitbuket 存储库中隐藏敏感值
- vue.js - 在 vue.js 中单击时如何禁用/启用输入字段