node.js - Puppeteer - Chrome |无法打开 X 显示器 | Ubuntu 20.04

标签 node.js linux ubuntu debian puppeteer

  • Puppeteer 预装的 chromium 根本不工作,所以我通过 apt install chromium-browser 安装了一个 ubuntu。并将可执行路径更改为 usr/bin/chromium-browser
  • 现在,puppeteer 没有抛出任何错误,但我得到了这个:
    [935270:935270:1222/220755.094434:ERROR:browser_main_loop.cc(1434)] 无法打开 X 显示。

  • 我在论坛上尝试了所有我喜欢的东西,但没有奏效。

    最佳答案

    我只是假设您在仅 Ubuntu 的终端上执行此操作?在我的例子中,它是用于 Linux 的 Ubuntu Windows 子系统。
    像往常一样,当您有解决方案时,问题主要是错误所说的。没有显示。

    Unable to open X display.
    
    有一个解决方案,称为 X 虚拟帧缓冲区或 xvfb。 https://en.wikipedia.org/wiki/Xvfb
    我理解它的方式旨在充当客户端所有意图的显示,但对用户不可见。
    因此,我遇到的问题的一个解决方案是安装 xvfb,然后运行需要使用此工具显示的命令。就我而言,它是 protractor ,但 pupeteer 命令应该看起来相似:
    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/

    关于node.js - Puppeteer - Chrome |无法打开 X 显示器 | Ubuntu 20.04,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65415881/

    相关文章:

    node.js - 使用 express.json 代替 express.bodyparser

    node.js - 在 Symfony2 应用程序中包含 Node.JS + Socket.IO

    css - Wordpress 不显示 CSS

    java - 在 ubuntu 中安装 eclipse(eclipse-jee-helios-linux-gtk-x86_64) 时出错

    javascript - 使用 PHP exec 调用 Node 脚本并在 finally 方法之前将数据返回给 PHP

    mysql - 从表中获取实体并对字段求和 - Sequelize

    linux - "apt-get install"不要求确认 "yum install"

    linux - bash_profile 中的更改未反射(reflect)在 linux 中

    c - 使用linux终端时gcc从哪里来?

    c - 不知道在多线程的情况下如何从终端获取命令