Puppeteer — Chromium | Не удается открыть X display | Ubuntu 20.04

#node.js #linux #ubuntu #debian #puppeteer

#node.js #linux #ubuntu #debian #кукловод

Вопрос:

  1. Предустановленный Puppeteer chromium вообще не работал, поэтому я установил ubuntu один за apt install chromium-browser другим и изменил путь к исполняемому файлу на usr / bin / chromium-browser
  2. Теперь puppeteer не выдает никаких ошибок, но я получаю эту:

    [935270:935270:1222/220755.094434: ОШИБКА: browser_main_loop.cc(1434)] Не удается открыть X display.

Я перепробовал все, что я видел на форумах, но не сработало.

Ответ №1:

Я просто предполагаю, что вы выполняете это только на терминале Ubuntu? В моем случае это была подсистема Ubuntu Windows для Linux.

Как обычно, когда у вас есть решение, проблема в основном заключается в том, что говорится в ошибке. Нет отображения.

 Unable to open X display.
 

Для этого есть решение под названием X virtual framebuffer или xvfb. https://en.wikipedia.org/wiki/Xvfb

Насколько я понимаю, он нацелен на то, чтобы выступать в качестве дисплея для всех целей клиента, но не виден пользователю.

Итак, одним из решений возникшей у меня проблемы было установить xvfb, а затем запустить команду, требующую отображения с помощью этого инструмента. В моем случае это был транспортир, но команда puppeteer должна выглядеть аналогично:

 sudo apt-get install xvfb 
xvfb-run --auto-servernum npm run protractor
 

PS. Меня вдохновила эта запись в блоге https://remarkablemark.org/blog/2020/12/12/headless-test-in-github-actions-workflow /