无法在Ubuntu桌面上使用Chromium的无头模式使用截图或打印成pdf



我正在使用Chrome和Chromium的无头版本来对给定页面进行屏幕截图。它在Windows和Ubuntu服务器上运行良好,但在Ubuntu桌面虚拟机上则不然。

我得到错误">只有在启用远程调试时才支持打开多个选项卡";在Ubuntu桌面上,当我尝试截图(--screenshot标志(或生成PDF文件(--print-to-pdf标志(时。

我可以使用--remote-debugging-port标志来启用远程调试,但当它被启用时,您不能使用--screenshot标志或--print-to-pdf标志。

关于如何在Ubuntu桌面上使用这些标志,有什么想法吗?

详细信息

在窗口上

版本
谷歌Chrome版本84.0.4147.125

使用的命令
> start chrome --headless --screenshot=%CD%example_sh.png https://example.com/

注意:您必须在windows上提供屏幕截图的路径,否则它将不会创建文件,这就是我仅在windows上添加%CD%的原因。但这不是问题所在

命令输出

生成的文件:
Yes

在Ubuntu服务器上

版本

$ chromium-browser --version
Chromium 84.0.4147.105 Built on Ubuntu , running on Ubuntu 18.04

使用的命令
$ chromium-browser --headless --screenshot=example_sh.png https://example.com/

命令输出
[0812/102830.971006:INFO:headless_shell.cc(615)] Written to file example_sh.png.

生成的文件:
Yes

在Ubuntu桌面上

版本

$ chromium-browser --version
Chromium 84.0.4147.105 snap

使用的命令
$ chromium-browser --headless --screenshot=example_sh.png https://example.com/

命令输出
[0812/123941.367535:ERROR:headless_shell.cc(174)] Open multiple tabs is only supported when remote debugging is enabled.

生成的文件:
No


请注意,由替换.deb包组成的解决方案不是我想要的。如果我是唯一一个使用这些标志的人,这可能是一个很好的解决方案,但这不能作为一个解决方案,因为我在一些代码中使用它们来调用命令,这些代码是与其他人共享的库的一部分。

我建议:

  1. 开放式铬与:chromium-browser https://example.com/或者如果仅CCD_ 16失败。

  2. 转到此新会话中选项卡中的chrome://version,并注意命令行可执行路径

  3. 在命令行中查找不寻常的空格,例如文件路径未正确转义的参数中的空格。(这可以在清除任何用户名后添加到问题中。(

  4. 使用可执行路径中指示的二进制文件,直接尝试构造--headless命令。如果原因来自包装器,那么这应该是有效的,如果不是,交互使用该二进制文件,请查看chrome://version->命令行。如果篡改来自于它被编译为注入到自己的命令行中的东西,那么可能没有一个好的解决方法。

最新更新