细节

细节

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

我收到错误“仅当启用远程调试时才支持打开多个选项卡“当我尝试在 Ubuntu 桌面上截取屏幕截图(--screenshot标志)或生成 PDF 文件(--print-to-pdf标志)时。

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

细节

在 Windows 上

版本
Google Chrome 版本 84.0.4147.125

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

注意:您必须在 Windows 上提供屏幕截图的路径,否则将无法创建文件,这就是我%CD%\只在 Windows 上添加的原因。但这不是这里的问题。

命令输出
没有任何

生成的文件:
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

答案1

问题与折断在您的桌面虚拟机上安装 Chromium 版本。将其替换为.deb您服务器上使用的相同软件包,一切应按预期运行。

答案2

对同一问题已经给出了答案:https://stackoverflow.com/a/63514185/12182226

基本上,您必须使用页面中显示的chromium 值,而不是chromium-browser或命令。例如,。chromiumExecutable Pathchrome://version/snap/chromium/1260/usr/lib/chromium-browser/chrome

要截取屏幕截图:
/snap/chromium/1260/usr/lib/chromium-browser/chrome --headless --screenshot=example_sh.png https://example.com/

相关内容