我正在使用 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
或命令。例如,。chromium
Executable Path
chrome://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/