web-dev-qa-db-ja.com

Xvfbバッファーのスクリーンショットを撮るにはどうすればよいですか?

Amazon Linuxを使用しています。 node.jsのSelniumテストで使用するヘッドレスのクロムブラウザーを実行したいのですが。だから私は私のように私の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バッファーのスクリーンショットを撮るにはどうすればよいですか?

15
Dave

私は同様のことを試しました(別のディストリビューションで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
$

そして、私は「/tmp/screenshot.png」ファイルを黒の背景に期待されるxtermウィンドウで持っています。あなたも使うことができます

xwd -display :1 -root -silent | convert xwd:- png:/tmp/screenshot.png
2
Nathael Pajani