Вопрос или проблема
Я могу запустить экземпляр xvfb без проблем
Xvfb :1 -screen 0 800x600x24
После этого я могу запустить Firefox, и он загружается правильно, но окно всегда меньше, чем разрешение, которое я установил во время команды xvfb.
firefox http://www.ebay.com --display=:1
Вы можете видеть черную полоску, это полное разрешение. Похоже, что окно подстраивается под то, что хочет страница, но оно никогда полностью не заполняет его.
Вот решение, не очень красивое, но работающее. Использует xdotool
для задания размера после запуска Firefox
.
Сначала:
xdotool search --onlyvisible firefox
Это покажет один ID окна, windowid
. Затем:
xdotool windowmove windowid 0 0
xdotool windowsize windowid 1280 720
Сначала нужно выполнить windowmove
, а затем windowsize
.
В некоторых случаях, когда я это сделал, размер и положение оставались корректными навсегда, в других случаях приходилось выполнять снова каждый раз, когда я запускал Firefox
.
Предположите, что граница есть, и компенсируйте это в своем захвате. Если вам нужно 1024×768, то установите размер экрана на 1034×778 и захватите 1024×768.
Xvfb :1 -screen 0 1034x778x24 > /dev/null &
ffmpeg -t 1 -s 1024x768 -f x11grab -i :1.0+10,10 -f mjpeg screenshot.png
Я столкнулся с той же проблемой и решил ее, установив разрешение в качестве аргументов (таких же, как я использовал для Xvfb) при запуске браузера.
Chrome
--window-size=1024,768
Firefox
--width=1024 --height=768
Ответ или решение
Для решения проблемы с неправильным размером окна Firefox в экземпляре VNC (Xvfb) можно использовать несколько подходов. Ниже представлены шаги, которые помогут вам настроить правильный размер окна.
Шаги для настройки размера окна Firefox в Xvfb:
-
Запуск экземпляра Xvfb с необходимым разрешением:
Убедитесь, что вы запускаете Xvfb с параметрами, которые соответствуют вашему желаемому разрешению. Например:
Xvfb :1 -screen 0 1024x768x24 &
-
Запуск Firefox с заданными параметрами размера окна:
При запуске Firefox важно указать параметры размера окна. Для Firefox используйте следующие параметры:
firefox --display=:1 --width=1024 --height=768 http://www.ebay.com
Эти параметры гарантируют, что окно Firefox будет запущено с заданным размером.
-
Использование xdotool для изменения размера окна:
Если указанные выше команды не решают проблему, можно использовать
xdotool
для изменения размера окна после его запуска. Введите следующие команды:windowid=$(xdotool search --onlyvisible --class firefox) xdotool windowmove $windowid 0 0 xdotool windowsize $windowid 1024 768
Убедитесь, что вы сначала перемещаете окно, а затем изменяете его размер. Этот подход может потребовать повторного выполнения для каждого нового запущенного экземпляра Firefox.
-
Компенсация за границы окна:
Если вас беспокоит наличие черных полос или границ, учитывайте это при захвате экрана. Например, если вы хотите захватить разрешение 1024×768, установите разрешение Xvfb на 1034×778, а затем используйте следующую команду для захвата:
ffmpeg -t 1 -s 1024x768 -f x11grab -i :1.0+10,10 -f mjpeg screenshot.png
Это обеспечит захват окна без черных полос.
Следуя вышеуказанным шагам, вы сможете настроить правильный размер окна Firefox в экземпляре Xvfb и избежать проблем с его отображением. Если возникнут дополнительные вопросы, не стесняйтесь их задавать.