Не удается заставить Firefox отображать правильный размер в безголовом экземпляре xvfb.

Вопрос или проблема

Я могу запустить экземпляр 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:

  1. Запуск экземпляра Xvfb с необходимым разрешением:

    Убедитесь, что вы запускаете Xvfb с параметрами, которые соответствуют вашему желаемому разрешению. Например:

    Xvfb :1 -screen 0 1024x768x24 &
  2. Запуск Firefox с заданными параметрами размера окна:

    При запуске Firefox важно указать параметры размера окна. Для Firefox используйте следующие параметры:

    firefox --display=:1 --width=1024 --height=768 http://www.ebay.com

    Эти параметры гарантируют, что окно Firefox будет запущено с заданным размером.

  3. Использование xdotool для изменения размера окна:

    Если указанные выше команды не решают проблему, можно использовать xdotool для изменения размера окна после его запуска. Введите следующие команды:

    windowid=$(xdotool search --onlyvisible --class firefox)
    xdotool windowmove $windowid 0 0
    xdotool windowsize $windowid 1024 768

    Убедитесь, что вы сначала перемещаете окно, а затем изменяете его размер. Этот подход может потребовать повторного выполнения для каждого нового запущенного экземпляра Firefox.

  4. Компенсация за границы окна:

    Если вас беспокоит наличие черных полос или границ, учитывайте это при захвате экрана. Например, если вы хотите захватить разрешение 1024×768, установите разрешение Xvfb на 1034×778, а затем используйте следующую команду для захвата:

    ffmpeg -t 1 -s 1024x768 -f x11grab -i :1.0+10,10 -f mjpeg screenshot.png

    Это обеспечит захват окна без черных полос.

Следуя вышеуказанным шагам, вы сможете настроить правильный размер окна Firefox в экземпляре Xvfb и избежать проблем с его отображением. Если возникнут дополнительные вопросы, не стесняйтесь их задавать.

Оцените материал
Добавить комментарий

Капча загружается...