问题描述
因此,我尝试以编程方式对多个网页进行 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 并审核我想要的页面而没有任何错误。