Xvfb 버퍼의 스크린샷을 찍는 방법은 무엇입니까?

Xvfb 버퍼의 스크린샷을 찍는 방법은 무엇입니까?

저는 아마존 리눅스를 사용하고 있습니다. 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 버퍼의 스크린샷을 찍는 방법은 무엇입니까?

답변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

관련 정보