Error failed to launch the browser process
проверено сбой crashForExceptionInNonABIComplianceCodeRange приведенный ниже код предназначен для создания файла PDF
(async function() {
try {
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.setContent(pdfOutput);
await page.emulateMedia(“screen”);
await page.pdf({
path: “routes/planiton/pdf/mypdf.pdf”,
format: “A4”,
printBackground: true
});
console.log(‘done’);
await browser.close();
//process.exit();
} catch (e) {
console.log(“Our Error”, e)
}
})();
Ответ
У меня была такая же проблема, я перепробовал все, что указано в руководстве по Puppeteer, ни один из них не сработал для меня.
Что работает для меня, так это загрузить chromium вручную sudo apt-get install chromium-browser.
И затем сообщите Puppeteer, где находится chromium :
const browser = await puppeteer.launch({
executablePath: ‘/usr/bin/chromium-browser’
})
Надеюсь, это кому-нибудь поможет 🙂
const browser = await puppeteer.launch({
headless:false,
args: [“–no-sandbox”]
});
установите puppeteer и puppeteer-core.
apt-get install chromium-browser
Попробуйте с помощью этой команды, и все равно вы получите какую-либо ошибку.
Затем установите некоторые неполные пакеты ОС. Для Ubuntu я установил:
sudo apt-get install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget
Ошибка: Не удалось запустить процесс браузера! spawn /usr/bin/chromium-browser ENOENT
Я пытаюсь использовать puppeteer с node.js, который отлично работает на моей локальной Mac OS, но когда код проходит через конвейер CI, он выдает следующую ошибку
error: Error: Failed to launch the browser process! spawn /usr/bin/chromium-browser ENOENT
TROUBLESHOOTING
Я пробовал документы по устранению неполадок, но данные решения не работают в моем случае.
* docker –
ENV CHROME_BIN=”/usr/bin/chromium-browser” \
PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=”true”
RUN set -x \
&& apk update \
&& apk upgrade \
&& apk add –no-cache \
udev \
ttf-freefont \
chromium \
&& npm install puppeteer
*Node-
const browser = await puppeteer.launch({
headless: true,
executablePath: ‘/usr/bin/chromium-browser’,
args: [
‘–no-sandbox’,
‘–headless’,
‘–disable-gpu’,
‘–disable-dev-shm-usage’
]
})
Ответ
У меня была такая же проблема, когда я пытался запустить контейнер узла в докере.
Моя среда использует:
Докер версии 20.10.12
Убунту версии 20.04
Версия Puppeteer ^ 13.5.2 (не ядро puppeteer)
Версия узла 16.16.0
Вы можете запустить ldd chrome | grep not на компьютере с Linux, чтобы проверить, какие зависимости отсутствуют.
Зайдите внутрь работающего контейнера докеров — docker exec -it [CONTAINER ID] /bin/bash. Запустите приведенную выше команду внутри этого пути, чтобы найти отсутствующие зависимости — /node_modules/puppeteer/.local-chromium/linux-[970485]/chrome-linux
Добавьте недостающие зависимости в файл docker.
Dockerfile (мне не нужно было устанавливать хром или хром-браузер)
RUN apt-get update \
&& apt-get -f install -y –no-install-recommends \
fonts-liberation \
libgtk-3-0 \
libwayland-client0 \
xdg-utils \
libu2f-udev \
libvulkan1 \
libnss3 \
libnspr4 \
libatk1.0-0 \
libatk-bridge2.0-0 \
libcups2 \
libdrm2 \
libxkbcommon0 \
libxcomposite1 \
libxdamage1 \
libxfixes3 \
libxrandr2 \
libgbm1 \
libasound2 \
&& rm -rf /var/lib/apt/lists/*
Nodefile.js (баузер не установлен локально, поэтому нет необходимости устанавливать executablePath)
// linux
let browser = await puppeteer.launch({
headless: true,
args: [‘-no-sandbox’]
});