web-dev-qa-db-ja.com

ヘッドレスのxvfbインスタンスでFirefoxが正しいサイズをレンダリングできない

Xvfbインスタンスをうまく起動できます

Xvfb :1 -screen 0 800x600x24

その後、firefoxを起動して正しくロードできますが、ウィンドウは常にxvfbコマンドで設定した解像度よりも小さくなります。

firefox http://www.ebay.com --display=:1

enter image description here

あなたは黒いバーを見ることができます、それはフル解像度です。ページのサイズに合っているように見えますが、完全に埋めることはできません。

3
Ryan Detzel

ここに解決策がありますが、きれいではありませんが機能します。 xdotoolの実行後にFirefoxを使用してサイズを設定します。

最初:

xdotool search --onlyvisible firefox

これにより、単一のウィンドウID windowidが表示されます。次に:

xdotool windowmove windowid 0 0
xdotool windowsize windowid 1280 720

最初にwindowmoveを実行し、その後にwindowsizeを続ける必要があります。

一度これを行うと、サイズと位置がずっとずっと正確になり、Firefoxを実行するたびに再度実行する必要がありました。

3
sbakke

境界線がそこにあると想定し、キャプチャに応じて補正します。 1024x768が必要な場合は、画面サイズを1034x778に設定し、1024x768をキャプチャします

Xvfb :1 -screen 0 1034x778x24 > /dev/null &
ffmpeg -t 1 -s 1024x768 -f x11grab -i :1.0+10,10 -f mjpeg screenshot.png
1
TomSchober