21xrx.com
2024-12-22 22:20:28 Sunday
登录
文章检索 我的文章 写文章
解决:Node.js 使用 Puppeteer 打开 Chrome 网页失败
2023-07-13 16:26:11 深夜i     --     --
Node js Puppeteer Chrome 网页 失败

在 Node.js 开发过程中,我们可能会使用 Puppeteer 这一库来模拟用户操作,然后获取数据或者进行自动化测试等工作。但是,我们有时候会遇到无法打开 Chrome 网页的问题,这时候该如何解决呢?

首先,我们可以查看错误信息,可能会出现以下的错误:

1. Failed to launch chrome: error while loading shared libraries: libX11-xcb.so.1: cannot open shared object file: No such file or directory

2. Failed to launch chrome: Failed to load LibGtk-3.so.0

3. Failed to launch chrome: SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /usr/local/lib/node_modules/puppeteer/.local-chromium/linux-686602/chrome-linux/chrome_sandbox is owned by root and has mode 4755.

第一种错误的解决方法是安装缺失的依赖库,以 Ubuntu 为例:


sudo apt-get update

sudo apt-get install libxss1 libasound2 libatk1.0-0 libatk-bridge2.0-0 libdrm2 libgbm-dev libgdk-pixbuf2.0-0 libgtk-3-0 libnspr4 libnss3 libxcomposite1 libxcursor1 libxdamage1 libxi6 libxslt1.1 libxtst6 fonts-liberation2 libappindicator3-1 libsecret-1-0 -y

第二种错误的解决方法是安装 GNOME 库,同样以 Ubuntu 为例:


sudo apt-get install libgtk-3-dev -y

第三种错误的解决方法是修改权限,将 chrome_sandbox 文件的所有者改为 root,文件权限为 4755:


sudo chown root /usr/local/lib/node_modules/puppeteer/.local-chromium/linux-686602/chrome-linux/chrome_sandbox

sudo chmod 4755 /usr/local/lib/node_modules/puppeteer/.local-chromium/linux-686602/chrome-linux/chrome_sandbox

以上是一些解决 Node.js 使用 Puppeteer 打开 Chrome 网页失败的方法,但具体解决方法还是要根据具体错误信息来定。同时,我们也应该在编码过程中注意代码质量,减少程序错误的发生,提高开发效率。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复