Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 木偶演员未在无头模式下运行:错误模式_Node.js_Google Chrome_Puppeteer_Headless - Fatal编程技术网

Node.js 木偶演员未在无头模式下运行:错误模式

Node.js 木偶演员未在无头模式下运行:错误模式,node.js,google-chrome,puppeteer,headless,Node.js,Google Chrome,Puppeteer,Headless,我想让木偶演员进入无头模式:错误模式。它在我的本地计算机上工作,但当我将其推送到服务器并尝试启动它时,会出现以下错误: 4|scraperP | You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection: 4|scraperP | Error: Failed to launch chrome! 4|scraperP | [0620/073557.986542:ERRO

我想让木偶演员进入无头模式:错误模式。它在我的本地计算机上工作,但当我将其推送到服务器并尝试启动它时,会出现以下错误:

4|scraperP | You have triggered an unhandledRejection, you may have forgotten to catch a Promise rejection:
4|scraperP | Error: Failed to launch chrome!
4|scraperP | [0620/073557.986542:ERROR:nacl_helper_linux.cc(310)] NaCl helper process running without a sandbox!
4|scraperP | Most likely you need to configure your SUID sandbox correctly
4|scraperP | TROUBLESHOOTING: https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md
4|scraperP |     at onClose (/home/pjotr/scrapermmcreation/node_modules/puppeteer/lib/Launcher.js:285:14)
4|scraperP |     at Interface.helper.addEventListener (/home/pjotr/scrapermmcreation/node_modules/puppeteer/lib/Launcher.js:274:50)
4|scraperP |     at Interface.emit (events.js:165:20)
4|scraperP |     at Interface.close (readline.js:381:8)
4|scraperP |     at Socket.onend (readline.js:154:10)
4|scraperP |     at Socket.emit (events.js:165:20)
4|scraperP |     at endReadableNT (_stream_readable.js:1101:12)
4|scraperP |     at process._tickCallback (internal/process/next_tick.js:152:19)
当我以headless:true模式启动时,我不会得到htis错误。你知道怎么解决这个问题吗?这就是我发布木偶演员的方式:

var browser = await puppeteer.launch({
   args: [
   '--ignore-certificate-errors',
   '--no-sandbox',
   '--disable-setuid-sandbox',
   '--window-size=1920,1080',
   "--disable-accelerated-2d-canvas",
   "--disable-gpu"],
   ignoreHTTPSErrors: true,
   headless: false,
 });

1。您必须安装一些lib软件包。

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 \
xvfb x11vnc x11-xkb-utils xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic x11-apps
2。然后用脚本启动xvfb

例如:

xvfb运行--server args=“-screen 0 1024x768x24”npm启动

如果您使用Docker,请遵循此Docker文件 下面是一个使用xvfb的木偶演员的例子

您可以尝试诱使无头chrome在启用GPU的情况下运行:

const browser=wait puppeter.launch({
无头:错,
参数:['--headless'],
})
对我来说,它很有效:

const puppeteer = require('puppeteer');

(async () => {
        const browser = await puppeteer.launch({ headless: false });

        console.log(await browser.userAgent());

        await browser.close();
})();

以下几点对我有用

const puppeteer = require("puppeteer");
async function getData() {
   const browser = await puppeteer.launch({ headless: false });
}
getData();


你能显示代码吗?我添加了如何启动iti我认为你没有正确安装chrome。正在阅读软件包列表。。。已完成构建依赖关系树以读取状态信息。。。完成E:找不到程序包libexpat1 E:找不到程序包libpango-1.0-0 E:找不到glob'libpango-1.0-0'的任何程序包E:找不到regex'libpango-1.0-0'的任何程序包E:找不到程序包libxcurs1 E:找不到程序包ca证书E:找不到程序包xvfbi尝试安装所有程序包bt仍然有同样的问题。我通过链接,在Ubuntu 16.04上成功地解决了这个问题。这个答案不值得投反对票。为什么这不是正确的答案?就像一个魔咒一样,thanksI一直在努力让木偶演员在nodeJs digitalocean droplet上奔跑,这是最后一个障碍。谢谢至于lib包,如果
ldd chrome | grep not
在你的node_modules/puppeter/../chrome linux中没有显示任何内容,
sudo获得xvfb
,然后用Naimur说的
xvfb run
运行命令就足够了。再次感谢!这是专门针对headless模式的(headless:true或省略它)
const puppeteer = require("puppeteer");
async function getData() {
   const browser = await puppeteer.launch({ headless: false });
}
getData();