Dav*_*ave 20 chrome screenshot imagemagick xvfb display
我正在使用亚马逊 Linux。我想在我的 node.js Selnium 测试中运行一个无头 Chrome 浏览器。所以我像这样启动我的 Xvfb 服务器......
if ! pidof /usr/bin/Xvfb; then Xvfb :0 -screen 5 1024x768x8 & fi
Run Code Online (Sandbox Code Playgroud)
但是,当我在测试失败后尝试截取屏幕截图时,
DISPLAY=:0 import -window root /tmp/screenshot.png
Run Code Online (Sandbox Code Playgroud)
我收到下面提到的错误...
+ DISPLAY=:0
+ import -window root /tmp/screenshot.png
import: unable to open X server `:0' @ error/import.c/ImportImageCommand/369.
Run Code Online (Sandbox Code Playgroud)
如何截取 Xvfb 缓冲区的屏幕截图?
小智 6
我尝试了类似的东西(在另一个发行版上并截取 xterm 窗口的屏幕截图,但这应该不会有太大不同)我不得不使用 display :1 因为 display :0 已经被使用:
$ Xvfb :1 -screen 5 1024x768x8 &
[1] 23728
$ pidof /usr/bin/Xvfb
23728
$ DISPLAY=:1 xterm 2>/dev/null &
[2] 23767
$ DISPLAY=:1 xwd -root -silent | convert xwd:- png:/tmp/screenshot.png
$
Run Code Online (Sandbox Code Playgroud)
我有一个 "/tmp/screenshot.png" 文件,在黑色背景上有预期的 xterm 窗口。你也可以使用
xwd -display :1 -root -silent | convert xwd:- png:/tmp/screenshot.png
Run Code Online (Sandbox Code Playgroud)