Xvfbバッファのスクリーンショットを撮るには?

Xvfbバッファのスクリーンショットを撮るには?

私は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

おすすめ記事