私はAmazon Linuxを使用しています。 node.js Selniumテストに使用するヘッドレスChromeブラウザを実行したいと思います。だから私はこのようにXvfbサーバーを起動します...
if ! pidof /usr/bin/Xvfb; then Xvfb :0 -screen 5 1024x768x8 & fi
しかし、テストに失敗した後にスクリーンショットを撮ろうとすると、
DISPLAY=:0 import -window root /tmp/screenshot.png
下記のエラーが発生します。
+ DISPLAY=:0
+ import -window root /tmp/screenshot.png
import: unable to open X server `:0' @ error/import.c/ImportImageCommand/369.
Xvfbバッファのスクリーンショットを撮るには?
ベストアンサー1
似たようなことを試しました(他のディストリビューションでxtermウィンドウのスクリーンショットを撮りましたが、それほど違いはありません)。 display:0がすでに使用されているので、display:1を使用する必要がありました。
$ 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
$
黒い背景に予想されるxtermウィンドウを含む「/tmp/screenshot.png」ファイルがあります。また、使用することができます
xwd -display :1 -root -silent | convert xwd:- png:/tmp/screenshot.png