无法在 Ubuntu 桌面上使用 Chromium 的无头模式使用 --screenshot 或 --print-to-pdf
Unable to use --screenshot or --print-to-pdf using headless mode of Chromium on Ubuntu desktop
我正在使用 Chrome 的无头版本和 Chromium 来截取给定页面的屏幕截图。
它在 Windows 和 Ubuntu 服务器上运行良好,但在 Ubuntu 桌面虚拟机上运行不佳。
我在 Ubuntu 桌面上尝试截图时收到错误消息“仅当启用远程调试时才支持打开多个选项卡”(--screenshot
标志)或生成 PDF 文件(--print-to-pdf
标志)。
我可以使用 --remote-debugging-port
标志启用远程调试,但启用后,您不能使用 --screenshot
标志或 --print-to-pdf
标志。
关于如何在 Ubuntu 桌面上使用这些标志有什么想法吗?
详情
在 windows
版本:
Google Chrome 版本 84.0.4147.125
使用的命令:
> start chrome --headless --screenshot=%CD%\example_sh.png https://example.com/
注意:您必须在 windows 上提供屏幕截图的路径,否则它不会创建文件,这就是我在 [=112] 上添加 %CD%\
的原因=] 只有。但这不是这里的问题。
命令输出 :
None
文件生成:
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 包组成的解决方案不是我想要的。如果我是唯一一个使用这些标志的人,这可能是一个很好的解决方法,但这不会作为解决方案,因为我在一些代码中调用使用它们的命令,这些代码是与其他人共享的库的一部分.
我建议:
打开 chromium 交互:
chromium-browser https://example.com/
或者如果失败只是 chromium-browser
.
在这个新会话的选项卡中转到 chrome://version
并记下 命令行 和 可执行路径.
在命令行中查找异常空格,例如来自带有未正确转义的文件路径的参数。 (这可以在清理任何 usernames/etc 之后添加到问题和问题中。)
使用可执行路径中指示的二进制文件直接尝试构造您的--headless
命令。如果原因来自包装器,这应该可以工作,如果不是,则以交互方式使用该二进制文件,再次查看 chrome://version -> Command Line。如果 mangling 来自它被编译为注入到它自己的命令行中的东西,可能没有一个好的解决方法。
我正在使用 Chrome 的无头版本和 Chromium 来截取给定页面的屏幕截图。 它在 Windows 和 Ubuntu 服务器上运行良好,但在 Ubuntu 桌面虚拟机上运行不佳。
我在 Ubuntu 桌面上尝试截图时收到错误消息“仅当启用远程调试时才支持打开多个选项卡”(--screenshot
标志)或生成 PDF 文件(--print-to-pdf
标志)。
我可以使用 --remote-debugging-port
标志启用远程调试,但启用后,您不能使用 --screenshot
标志或 --print-to-pdf
标志。
关于如何在 Ubuntu 桌面上使用这些标志有什么想法吗?
详情
在 windows
版本:
Google Chrome 版本 84.0.4147.125
使用的命令:
> start chrome --headless --screenshot=%CD%\example_sh.png https://example.com/
注意:您必须在 windows 上提供屏幕截图的路径,否则它不会创建文件,这就是我在 [=112] 上添加 %CD%\
的原因=] 只有。但这不是这里的问题。
命令输出 :
None
文件生成:
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 包组成的解决方案不是我想要的。如果我是唯一一个使用这些标志的人,这可能是一个很好的解决方法,但这不会作为解决方案,因为我在一些代码中调用使用它们的命令,这些代码是与其他人共享的库的一部分.
我建议:
打开 chromium 交互:
chromium-browser https://example.com/
或者如果失败只是chromium-browser
.在这个新会话的选项卡中转到
chrome://version
并记下 命令行 和 可执行路径.在命令行中查找异常空格,例如来自带有未正确转义的文件路径的参数。 (这可以在清理任何 usernames/etc 之后添加到问题和问题中。)
使用可执行路径中指示的二进制文件直接尝试构造您的
--headless
命令。如果原因来自包装器,这应该可以工作,如果不是,则以交互方式使用该二进制文件,再次查看 chrome://version -> Command Line。如果 mangling 来自它被编译为注入到它自己的命令行中的东西,可能没有一个好的解决方法。