Хлопок без головы, управляемый кукловодом, немедленно закрывается в Raspberry Pi 4 - PullRequest
1 голос
/ 12 октября 2019

Я пытаюсь автоматизировать отправку некоторых форм с помощью puppeteer на моем Raspberry Pi 4 (4 ГБ ОЗУ), и у меня возникают некоторые странные проблемы. Мой полный сценарий отлично работает с headless: false, но когда я пытаюсь запустить сценарий в автономном режиме, у меня возникают проблемы.

Следующий скрипт работает :

const puppeteer = require('puppeteer-core');

(async() => {
  const browser = await puppeteer.launch({headless: true, executablePath: '/usr/bin/chromium-browser'});
  const page = await browser.newPage();
  await page.goto('https://accounts.google.com')
  var title = await page.title();
  console.log(title)
  browser.close()
})();

Но если я пытаюсь запустить немного более сложный скрипт (т.е. сделать что-нибудь полезное после открытия страницы), кажется, что безголовый браузер закрывается. Так, например, этот скрипт терпит неудачу :

const puppeteer = require('puppeteer-core');

(async() => {
  const browser = await puppeteer.launch({headless: true, executablePath: '/usr/bin/chromium-browser'});
  const page = await browser.newPage();
  await page.goto('https://accounts.google.com')
  await page.waitForSelector('input');
  await page.type('input', 'test@example.com')
  var title = await page.title();
  console.log(title)
  browser.close()
})();

Я начинаю получать сообщения об ошибках вроде: UnhandledPromiseRejectionWarning: Error: Protocol error (Runtime.callFunctionOn): Session closed. Most likely the page has been closed

  • NodeJS Версия: v10.16.3
  • Версия NPM: 6.9.0
  • Версия браузера Chromium: Chromium 74.0.3729.157 Built on Raspbian , running on Raspbian 10
  • Версия Puppeteer: 1.20.0

Спасибо!

1 Ответ

0 голосов
/ 12 октября 2019

Вы, вероятно, закрываете браузер слишком рано. Это должно быть

await browser.close()
...