无法使用 Puppeteer -- 错误:无法启动 chrome

Han*_*anu 12 node.js gitlab-ci puppeteer

这是我得到的错误。当测试代码在 Gitlab CI 中运行时会发生这种情况。

但是,它在本地运行良好。有人请帮忙吗?

2036 $ npm test
Run Code Online (Sandbox Code Playgroud)

2037 > 10_auth@1.1.3 测试/builds/brhanuh/domestic-repair

2038 > jest --coverage 'unitTests/'

2039 错误:无法启动 Chrome!

2040 /builds/brhanuh/domestic-repair/node_modules/puppeteer/.local-chromium/linux-686378/chrome-linux/chrome:加载共享库时出错:libX11-xcb.so.1:无法打开共享对象文件:否这样的文件或目录

moh*_*adi 28

使用安装缺少的包

sudo apt install -y 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
Run Code Online (Sandbox Code Playgroud)

感谢@coldner 在pupetteer 问题跟踪器上组装所需的 pkg

如果遇到E: Unable to locate package错误,请运行sudo apt-get update.


Rob*_*don 9

我只是想添加到@mohammad 的答案中,现在 Puppetteer 现在有一个官方的故障排除指南,可以帮助您确定要安装的内容。

此外,他们建议运行以下命令来判断哪些特定软件包需要在 *nix 系统上安装

ldd chrome | grep not
Run Code Online (Sandbox Code Playgroud)

或者,如果您像我一样通过 NPM 通过 Puppeteter 安装了 Chrome:

ldd ./node_modules/puppeteer/.local-chromium/linux-756035/chrome-linux/chrome | grep not
Run Code Online (Sandbox Code Playgroud)

然后,我能够看到仍然缺少哪些库,并相应地进行安装。