有没有办法无头运行 Google Lighthouse 测试?

问题描述

因此,我尝试以编程方式对多个网页进行 Google Lighthouse 审核,但遇到了一个问题。在 Amazon Linux 2 EC2 实例上安装 Chrome 和 node/npm/lighthouse 后,当我启动 GUI 会话并从 GUI 内的终端运行命令时,我能够成功运行 LightHouse 测试(这将启动 chrome 并进行测试通常)但我无法从命令行做同样的事情。 This is the error I get when launching lighthouse. ChromeLauncher:error [42565:42565:0516/170626.787500:ERROR:brower_main_loop.cc (1386) Unable to open X display.

虽然还有其他一些错误,但我相信这是我应该注意的一个,因为当我尝试启动谷歌浏览器时,这正是我得到的错误,所以我倾向于相信它是尝试在显示器上启动的问题。

我在启动 chrome 时也试过“--headless”选项并得到 [0516/171128.450564:WARNING:headless_browser_main_parts.cc(83)] Cannot create Pref Service with no user data dir. [0516/171128.521499:ERROR:vaapi_wrapper.cc(594)] Could not get a valid VA display [0516/171128.524992:ERROR:gpu_init.cc(426)] Passthrough is not supported,GL is egl

一个有类似问题的用户决定使用 Google Pagespeeds API,这对我来说不是一个解决方案——它需要在本地完成。

因为这在具有相同服务器的 GUI 会话上工作正常,我真的认为这只是一个显示渲染问题,但我不知道如何解决这个问题。也许“模拟”显示?我还尝试输入 export disPLAY=1:0,这显然对某些用户有效,并导致我停止看到错误,但在运行审核时该功能仍然被破坏。

任何帮助都会非常有用!!

解决方法

this stackoverflow question 中的信息非常有用。虽然我在尝试启动浏览器时仍然遇到大量错误,但我可以成功运行 LightHouse 并审核我想要的页面而没有任何错误。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...