Сделайте полный снимок экрана с Firefox в командной строке

Я запускаю Firefox на Xvfb в VPS. Я хочу сделать снимок экрана на странице.

Я могу перенаправить Firefox на определенную страницу, используя

firefox http://google.com

и сделайте снимок экрана (внутри X) с помощью ImageMagick

import root -window output.jpg

Проблема в том, что большая часть страницы нуждается в прокрутке, и я не могу заранее знать высоту.

Другой способ - выбрать очень большую высоту (например, 4000 пикселей), а затем обработать изображение и удалить ненужную часть. Но эта ненужная обработка.

Я нашел много надстроек Firefox, но я ищу решение, которое можно запрограммировать с помощью командной строки оболочки.

Изменить: в итоге я написал свой собственный расширение FireFox для этого.

Ответ 1

Панель инструментов разработчика GCLI и ярлык Shift + F2 были удалены в Firefox версии 60. Чтобы сделать снимок экрана в 60 или более поздней версии:

  • нажмите Ctrl + Shift + K, чтобы открыть консоль разработчика.
  • Тип :screenshot или :screenshot --fullpage

Узнайте больше о скриншотах и других функциях


Для версий Firefox <60:

Нажмите Shift + F2 или перейдите в Инструменты> Веб-разработчик> Панель инструментов разработчика, чтобы открыть командную строку. Написать:

screenshot

и нажмите Enter, чтобы сделать снимок экрана.

Чтобы полностью ответить на вопрос, вы можете даже сохранить всю страницу, а не только ее видимую часть:

screenshot --fullpage

И чтобы скопировать скриншот в буфер обмена, используйте --clipboard:

screenshot --clipboard --fullpage

Firefox 18 изменяет способ передачи аргументов командам, вы должны добавить "-" перед ними.

Вы можете найти некоторую документацию и полный список команд здесь.

PS.Скриншоты по умолчанию сохраняются в каталоге загрузок.

Ответ 2

Обновление 2018-07-23

Как было отмечено в комментариях, этот вопрос касался получения снимка экрана из командной строки. Извините, я только что прочитал это. Итак, вот правильный ответ:

Начиная с Firefox 57, вы можете создать скриншот в режиме без головы, например:

firefox -screenshot https://developer.mozilla.com

Подробнее читайте в документации.

Обновление 2017-06-15

Начиная с Firefox 55, есть Firefox Screenshots как более гибкая альтернатива. Начиная с Firefox 57, снимки экрана также могут захватывать всю страницу.

Оригинальный ответ

Начиная с Firefox 32 в инструментах разработчика также есть кнопка полного скриншота страницы (F12). Если он не включен, перейдите в настройки инструментов разработчика (кнопка с изображением шестеренки) и выберите "Сделать снимок экрана полной страницы" в разделе "Доступные кнопки панели инструментов".

developer tools toolbar источник: developer.mozilla.org

По умолчанию скриншоты сохраняются в каталоге загрузки. Это похоже на screenshot --fullpage на панели инструментов.

Ответ 3

Я закончил кодирование пользовательского решения (расширение Firefox), которое делает это. Я думаю, что к тому времени, как я его разработал, командная строка, упомянутая в enreas, не была там.

Расширение Firefox CmdShots. Это хороший вариант, если вам нужна более тонкая степень контроля над процессом снятия скриншота (или вы хотите сделать некоторые изменения HTML/JS и обработку изображений).

Вы можете использовать его и злоупотреблять им. Я решил сохранить его нелицензированным, поэтому вы можете играть с ним, как хотите.

Ответ 4

Я думаю, что вы ищете утилиту, которая позволяет вам сохранить полную страницу, открытую в вашем браузере, в файл png. Скорее всего, вы ищете утилиту вроде commandlineprint2.

После установки расширения вам просто нужно ввести команду:

firefox -print http://google.com -printfile ~/foo.png

Ответ 5

Firefox Screenshots - это новый инструмент, который поставляется с Firefox. Это не инструмент разработчика, он нацелен на конечных пользователей браузера.

Чтобы сделать снимок экрана, щелкните меню действий на странице в адресной строке и нажмите "сделать снимок экрана". Если вы затем нажмете "Сохранить полную страницу", она сохранит всю страницу, прокручивая для вас.