Зробіть знімок екрана на повній сторінці з Firefox у командному рядку


224

Я запускаю Firefox на Xvfb у VPS. Що я хочу зробити, це зробити скріншот сторінки на повній сторінці.

Я можу перенаправити Firefox на певну сторінку за допомогою

firefox http://google.com

і зробіть знімок екрана (всередині X) за допомогою ImageMagick

import root -window output.jpg

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

Інший спосіб - вибрати дуже велику висоту (наприклад, 4000px), а потім обробити зображення і видалити непотрібну частину. Але це непотрібна обробка.

Я знайшов багато додатків Firefox, але шукаю рішення, яке можна запрограмувати за допомогою командної лінії Shell.

Редагувати: я закінчив писати власне розширення FireFox для цього.


1
Я бачив декілька інструментів для веб-відеокліпів для створення скріншотів, але не пам’ятаю імен.
Руфо Ель Магуфо

Відповіді:


480

Панель інструментів розробника GCLI і Shift+ F2ярлик були видалені в Firefox версії 60 . Щоб зробити знімок екрана за 60 або новіших років:

  • натисніть Ctrl+ Shift+, Kщоб відкрити консоль розробника ( ⌥ Option+ ⌘ Command+ Kна macOS)
  • тип :screenshotабо:screenshot --fullpage

Дізнайтеся більше про знімки екрана та інші функції


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

Натисніть Shift+ F2або перейдіть до Інструменти> Веб-розробник> Панель інструментів розробника, щоб відкрити командний рядок. Написати:

screenshot

і натисніть Enter , щоб зробити знімок екрана.

Щоб повністю відповісти на питання, ви можете навіть зберегти всю сторінку, не тільки видиму її частину:

screenshot --fullpage

А щоб скопіювати скріншот у буфер обміну, скористайтеся --clipboardопцією:

screenshot --clipboard --fullpage

Firefox 18 змінює спосіб передачі аргументів командам, перед ними потрібно додати "-".

Ви можете знайти деяку документацію та повний список команд тут .

PS. Скріншоти зберігаються в каталозі завантажень за замовчуванням.


4
Якщо ви хочете просто скопіювати скріншот у буфер обміну, скористайтесь скріншотом --clipboard --fullpage
mbokil

2
Ця команда не працює в консолі javascript, тож чи є посилання на додаткову інформацію про цю панель інструментів? Що ще може зробити?
тремтіння

5
Просто FYI ви також можете вибрати DOM нотатки через інспектора, а потім right-click-> screenshot node. Це дуже корисно, коли ви хочете зробити скріншот розділу сторінки.
Том

5
Повний скріншот сторінки до буфера обміну - screenshot --clipboard --fullpageСкріншот конкретного вузла (за Id) -screenshot --clipboard --selector #elementId
Моніш

3
Мені довелося користуватися :screenshot --clipboard --fullpage(майте на увазі товсту кишку)
somerr

134

Оновлення 2018-07-23

Як тільки було зазначено в коментарях, це питання стосувалося отримання скріншоту з командного рядка . Вибачте, я щойно прочитав це. Тож ось правильна відповідь:

Станом на Firefox 57 ви можете створити скріншот у безголовому режимі таким чином:

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

Детальніше читайте в документації .

Оновлення 2017-06-15

На Firefox 55 є знімки екрана Firefox як більш гнучка альтернатива. Скріншоти Firefox 57 можуть також захоплювати повну сторінку.

Оригінальна відповідь

Оскільки Firefox 32, в інструментах для розробників також є кнопка скріншота на повній сторінці (F12). Якщо це не ввімкнено, перейдіть до налаштувань інструментів для розробників (кнопка передач) та виберіть "Зробити скріншот повної сторінки" у розділі "Доступні кнопки панелі інструментів".

панель інструментів для розробників джерело: developer.mozilla.org

За замовчуванням скріншоти зберігаються у каталозі завантажень. Це працює аналогічно на screenshot --fullpageпанелі інструментів.


7
Для тих, хто відкриває Firebug на F12, інструменти для розробників доступні за допомогою Ctrl + Shift + K або Ctrl + Shift + I. На всякий випадок ... хтось ніколи їх раніше не використовував.
Кір Канос

Ці комбінації клавіш не працюють на Mac. Використовуйте Інструменти> Веб-розробник> Переключити інструменти. І, так, кнопка екрану буде відключена за замовчуванням. Клацніть піктограму Налаштування, щоб увімкнути її.
Сніговий удар

на Mac ви можете відкрити інструменти для розробників за допомогою cmd+ alt+i
achairapart

Скріншоти Firefox завантажує скріншоти, зроблені на сервери Mozilla. Вони не зробили цього огидного, щоб я заздалегідь помітив. На щастя, образ у моєму випадку був не надто чутливим, хоча він був внутрішнім. Будьте попереджені.
Молот Брат.

1
З питання: "Я знайшов багато додатків Firefox, але я шукаю рішення, яке можна запрограмувати за допомогою командного рядка Shell".
Квентін

9

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

Розширення Firefox - це CmdShots . Це хороший варіант, якщо вам потрібен тонший ступінь контролю над процесом зйомки екрана (або ви хочете зробити деякі модифікації HTML / JS та обробку зображень).

Ви можете використовувати його і зловживати ним. Я вирішив тримати його неліцензійним, тож ви можете грати з ним так, як хочете.


20
Гм, це не те, що означає "неліцензований": це насправді означає, що ви не даєте жодного дозволу на будь-яке використання, що, очевидно, не вірно, оскільки в цьому самому реченні ви також говорите, що це нормально використовувати, зловживати і грати з ним як ви хочу. Можливо, ви хочете чогось типу CC0 ?
SamB

Для тих "неліцензованих" речей я віддаю перевагу саме цьому: wtfpl.net Тут чітко зазначено, що дозволено без законних BS.
кап

@SamB Я випадково натрапив на ваш коментар. Так, я знаю через 3 роки. Проблема полягає в тому, що якщо я пишу Ліцензію, я вже ускладнював речі. Підхід NOLICENSE - це просто наповнювати.
Омар Абід

3
Будь ласка, люди, не використовуйте користувацьку ліцензію. Я знаю, що люди намагаються уникати юридичної дурниці, пишучи власну ліцензію, але вони, в кінцевому підсумку, роблять навпаки, завдаючи юридичних болів людям, намагаючись зрозуміти, що насправді означає власна ліцензія. Дивіться selectalicense.com
Flimm

@SamB - хоча "неліцензований" явно не є "офіційною ліцензією", "Неліцензійний" насправді є ліцензією і, здається, досить близький до того, що ОП характеризує як свій намір використовувати свій код. Дивіться: selectalicense.com/licenses/unlicense
Буде

8

Я думаю, що ви шукаєте - це утиліта, яка дозволяє зберегти повну сторінку, відкриту у вашому браузері, у png-файл. Швидше за все, ви шукаєте таку утиліту, як commandlineprint2 .

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

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

1

Скріншоти Firefox - це новий інструмент, який постачається з Firefox. Це не інструмент для розробників, він спрямований на кінцевих користувачів браузера.

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


(джерело: mozilla.net )


3
З питання: "Я знайшов багато додатків Firefox, але я шукаю рішення, яке можна запрограмувати за допомогою командного рядка Shell".
Квентін

-1

Для Firefox можна використовувати селен та веб-диск.

import selenium.webdriver
import selenium.common

options = selenium.webdriver.firefox.options.Options()
# options.headless = True
with selenium.webdriver.Firefox(options=options) as driver:
    driver.get('http://google.com')
    time.sleep(2)
    root=driver.find_element_by_tag_name('html')
    root.screenshot('whole page screenshot.png')
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.