Как я могу использовать firefox для получения полных скриншотов страниц из командной строки? [Дубликат]

18

Мне нужно сделать снимок экрана всей веб-страницы.

Я видел Как я могу сделать полный скриншот страницы веб-страницы из командной строки? , где предлагается множество способов сделать снимок экрана, но мне нужно использовать firefox для лучшего эффекта.

    
задан Nymeria 02.07.2014 в 05:46
источник

3 ответа

13

Чтобы сделать скриншоты веб-страниц, показывающих всю прокручиваемую область страницы в firefox, я предлагаю два отдельных способа.

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

«Профессиональный» способ - с помощью инструмента тестирования и автоматизации веб-браузера GUI:

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

Например:

Command: open; Target: http://www.google.com
Command: captureEntirePageScreenshotAndWait; Target: \Screenshots\test.png

См. so.SE: Скриншоты с использованием плагина Selenium IDE Firefox

Чтобы установить часть Firefox из Selenium, получите дополнение Firefox , но не с официальной страницы надстроек - это на загружать страницу Selenium в качестве файла xpi. Это текущая версия .

(Существует множество дополнений для расширения самого селена (но в технических для дополнения Firefox), все называемые «Selenium ...» или даже «Selenium IDE ...» на Сайт дополнений - очень запутанный.)

«хакерский» способ - использование внутренних команд firefox с помощью клавиатуры:

В firefox есть встроенная командная строка, которая представляет собой инструмент разработки, который, как указывал @Fireflight, имеет команду для создания скриншотов. Но, насколько я знаю, это невозможно нормально контролировать из командной оболочки. Но мы можем сделать, чтобы имитировать нажатия клавиш, чтобы использовать его.

Нам нужно выбрать окно браузера, откройте приглашение, введите внутреннюю команду firefox (используя имя файла на основе текущей даты и времени), запустите команду и закройте ее еще раз:

FF=$(xdotool selectwindow)
xdotool key --window $FF Shift+F2 sleep 1
xdotool type --window $FF --delay 50 "screenshot page-$(date +%Y%m%d-%H%M%S).png --fullpage "
xdotool key --window $FF Return sleep 0.5 key --window $FF Shift+F2

Утилита командной строки xdotool может взаимодействовать с окнами X уровень событий X11. Мы используем его, чтобы выбрать окно firefox, которое показывает страницу, и отправить правильные штрихи клавиш, чтобы сделать снимок экрана.

(Это несколько хрупкий подход: он зависит от времени клавиатуры, он не будет работать, если приглашение уже открыто или содержит текст (Чтобы открыть или закрыть его, нажмите Shift-F2), но если он работает, очень приятно.)

В качестве примера, как выглядит этот вид скриншота, приведен пример man xdotool на manpages.ubuntu.com , уменьшен до 20% (оригинал 1336x15653), выполненный с помощью решения xdotool :

    
ответ дан Volker Siegel 02.07.2014 в 06:54
источник
10

В Firefox вы можете нажать Shift-F2 , а затем в появившейся командной строке просто введите:

screenshot filename.png --fullpage

Есть несколько дополнительных команд и опций доступно.     

ответ дан Fireflight 02.07.2014 в 18:20
1

Вы можете взять видео с вашего firefox. Используйте команду, например:

mkdir ~/my_video
cd ~/my_video
avconv  -an  -f x11grab -r 30 -s 1024x768 -i :0.0+10,20  -vcodec libx264  -preset ultrafast -threads 0 video.mkv

Вам, скорее всего, потребуется изменить размер (1024x768) и позицию (: 0.0 + 10,20) в соответствии с вашими потребностями.

Как только у вас есть видео, вы можете преобразовать его в кучу файлов .png с помощью mplayer:

mplayer video.mkv -vo png

Затем выберите наилучшее изображение для ваших нужд.

    
ответ дан sмurf 02.07.2014 в 07:05