Кукловод не работает в режиме без головы с хромом - PullRequest
0 голосов
/ 26 сентября 2019

Я использую Puppeteer 1.20.0 с Chromium-browser v74 на Raspberry pi, на котором запущен Raspbian 10. Использование примера кода со страницы 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 74.

Редактировать:

Я также попробовал версию 1.13.0 с ядром puppeteer-core, которая является рекомендуемой версией для Chromium 74, но она также не работала в режиме без головы.

Ответы [ 2 ]

0 голосов
/ 29 сентября 2019

Puppeteer гарантированно будет работать только с той версией хрома, с которой он связан (кукловод, а не ядро ​​кукловода).Так что вам, вероятно, повезет больше, если бы вы использовали старую версию кукольника, созданную для хрома 74.

0 голосов
/ 27 сентября 2019

У меня такая же проблема.Последние два дня я ломал голову над тем, чтобы это исправить ... Запуск с headless: false, кажется, исправляет это, но Пи должен запустить X (я запускаю сеанс через VNC).Что-то в последней сборке chromium-browser, кажется, вызывает проблему.Я не нашел простой способ перехода на предыдущие стабильные версии chromium-browser.Надеюсь, кто-то найдет решение для этого

...