Fai uno screenshot di pagina intera con Firefox dalla riga di comando


224

Sto eseguendo Firefox su un Xvfb in un VPS. Quello che voglio fare è fare uno screenshot della pagina intera della pagina.

Posso reindirizzare Firefox a una determinata pagina utilizzando

firefox http://google.com

e fai uno screenshot (all'interno di X) usando ImageMagick

import root -window output.jpg

Il problema è che la maggior parte della pagina deve scorrere e non posso sapere l'altezza in anticipo.

L'altro modo è scegliere un'altezza molto grande (come 4000px) e quindi elaborare l'immagine e rimuovere la parte inutile. Ma questa è un'elaborazione non necessaria.

Ho trovato molti componenti aggiuntivi di Firefox, ma sto cercando una soluzione che può essere programmata utilizzando la riga di comando di Shell.

Modifica: ho finito per scrivere la mia estensione FireFox per farlo.


1
Ho visto alcuni strumenti di cli di webkit per prendere screenshot ma non ricordo i nomi.
Rufo El Magufo,

Risposte:


480

La barra degli strumenti Developer GCLI e il collegamento Shift+ F2sono stati rimossi in Firefox versione 60 . Per fare uno screenshot in 60 o più recenti:

  • premi Ctrl+ Shift+ Kper aprire la console per sviluppatori ( ⌥ Option+ ⌘ Command+ Ksu macOS)
  • digitare :screenshoto:screenshot --fullpage

Scopri di più sugli screenshot e altre funzionalità


Per le versioni di Firefox <60:

Premi Shift+ F2o vai su Strumenti> Sviluppatore Web> Barra degli strumenti per sviluppatori per aprire una riga di comando. Scrivi:

screenshot

e premi Invio per fare uno screenshot.

Per rispondere completamente alla domanda, puoi persino salvare l'intera pagina, non solo la parte visibile di essa:

screenshot --fullpage

E per copiare lo screenshot negli appunti, usa l' --clipboardopzione:

screenshot --clipboard --fullpage

Firefox 18 modifica il modo in cui gli argomenti vengono passati ai comandi, devi aggiungere "-" prima di essi.

Puoi trovare un po 'di documentazione e l'elenco completo dei comandi qui .

PS. Le schermate vengono salvate nella directory dei download per impostazione predefinita.


4
Se vuoi semplicemente copiare lo screenshot negli appunti usa direttamente screenshot --clipboard --fullpage
mbokil

2
Questo comando non funziona in una console javascript, quindi esiste un collegamento a ulteriori informazioni su questa barra degli strumenti? Cos'altro può fare?
tremby,

5
Solo FYI puoi anche selezionare le note DOM tramite la finestra di ispezione e quindi right-click-> screenshot node. Questo è molto utile quando vuoi fare uno screenshot di una sezione di una pagina.
Tom,

5
Schermata intera pagina negli Appunti - screenshot --clipboard --fullpageSchermata di un nodo particolare (per ID) -screenshot --clipboard --selector #elementId
Mohnish,

3
Ho dovuto usare :screenshot --clipboard --fullpage(attenzione ai due punti)
circa il

134

Aggiornamento 23/07/2018

Come è stato appena sottolineato nei commenti, questa domanda era su come ottenere uno screenshot dalla riga di comando . Mi dispiace, l'ho appena letto. Quindi ecco la risposta corretta:

A partire da Firefox 57 puoi creare uno screenshot in modalità senza testa come questo:

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

Maggiori informazioni nella documentazione .

Aggiornamento 15/06/2017

A partire da Firefox 55 c'è Firefox Screenshot come alternativa più flessibile. A partire da Firefox 57 Gli screenshot possono anche catturare una pagina intera.

Risposta originale

Da Firefox 32 c'è anche un pulsante di screenshot a pagina intera negli strumenti di sviluppo (F12). Se non è abilitato, vai alle impostazioni degli strumenti di sviluppo (pulsante a forma di ingranaggio) e seleziona "Acquisisci uno screenshot a pagina intera" nella sezione "Pulsanti disponibili della casella degli strumenti".

barra degli strumenti degli sviluppatori fonte: developer.mozilla.org

Per impostazione predefinita, gli screenshot vengono salvati nella directory di download. Funziona in modo simile alla screenshot --fullpagebarra degli strumenti.


7
Per coloro che hanno l'apertura di Firebug su F12, gli strumenti per sviluppatori sono disponibili con Ctrl + Maiusc + K o Ctrl + Maiusc + I. Solo ... nel caso ... qualcuno non li abbia mai usati prima.
Kir Kanos,

Queste scorciatoie da tastiera non funzionano sul Mac. Usa Strumenti> Sviluppatore Web> Attiva / disattiva strumenti. E, sì, il pulsante dello screenshot è disabilitato per impostazione predefinita. Fai clic sull'icona Impostazioni per abilitare.
Snowcrash,

su Mac, puoi aprire gli strumenti di sviluppo con cmd+ alt+i
achairapart

Le schermate di Firefox caricano le schermate prese sui server di Mozilla. Non l'hanno reso abbastanza ovvio da farmi notare in anticipo. Fortunatamente l'immagine nel mio caso non era troppo sensibile, sebbene fosse interna. Essere avvisati
Hammer Bro.

1
Dalla domanda: "Ho trovato molti componenti aggiuntivi per Firefox, ma sto cercando una soluzione che può essere programmata utilizzando la riga di comando di Shell".
Quentin,

9

Ho finito per codificare una soluzione personalizzata (estensione di Firefox) che fa questo. Penso che quando l'ho sviluppato, la riga di comando menzionata in enreas non c'era.

L'estensione di Firefox è CmdShots . È una buona opzione se hai bisogno di un maggiore grado di controllo sul processo di acquisizione dello screenshot (o se vuoi apportare alcune modifiche HTML / JS e l'elaborazione delle immagini).

Puoi usarlo e abusarlo. Ho deciso di mantenerlo senza licenza, quindi sei libero di giocarci come vuoi.


20
Hmm, non è quello che significa "senza licenza": in realtà significa che non dai alcun permesso per qualsiasi uso, il che non è chiaramente vero dal momento che in quella frase dici anche che va bene usarlo, abusarne e giocarci come te volere. Forse vuoi qualcosa di simile a CC0 ?
SamB,

Per quelle cose "senza licenza" preferisco questo: wtfpl.net Indica chiaramente cosa è permesso senza BS legale.
kap

@SamB Mi sono imbattuto casualmente nel tuo commento. Sì, lo so 3 anni dopo. Il problema è che se scrivo una licenza, ho già complicato le cose. L'approccio NOLICENSE è semplicemente roba.
Omar Abid,

3
Per favore gente, non usare la licenza personalizzata. So che le persone cercano di evitare sciocchezze legali scrivendo la propria licenza, ma finiscono per fare il contrario, causando mal di testa legali alle persone mentre provano a capire cosa significhi effettivamente la licenza personalizzata. Vedi choosealicense.com
Flimm il

@SamB - mentre "senza licenza" non è esplicitamente una "licenza ufficiale", "The Unlicense" in realtà è una licenza e sembra essere abbastanza vicino a ciò che l'OP descrive come il suo intento per l'uso del suo codice. Vedi: choosealicense.com/licenses/unlicense
Will Ediger

8

Penso che quello che stai cercando sia un'utilità che ti consenta di salvare una pagina completa aperta nel tuo browser in un file png. Molto probabilmente stai cercando un'utilità come commandlineprint2 .

Dopo aver installato l'estensione, devi solo digitare il comando:

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

1

Firefox Screenshots è un nuovo strumento fornito con Firefox. Non è uno strumento di sviluppo, è rivolto agli utenti finali del browser.

Per fare uno screenshot, fai clic sul menu delle azioni della pagina nella barra degli indirizzi e fai clic su "scatta uno screenshot". Se poi fai clic su "Salva pagina intera", salverà l'intera pagina, scorrendo per te.


(fonte: mozilla.net )


3
Dalla domanda: "Ho trovato molti componenti aggiuntivi per Firefox, ma sto cercando una soluzione che può essere programmata utilizzando la riga di comando di Shell".
Quentin,

-1

Puoi usare il selenio e il webdriver per 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')
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.