J'exécute Firefox sur un Xvfb dans un VPS. Ce que je veux faire est de prendre une capture d'écran de la page complète.
Je peux rediriger Firefox vers une page particulière en utilisant
firefox http://google.com
et prendre une capture d'écran (à l'intérieur de X) en utilisant ImageMagick
import root -window output.jpg
Le problème est que la plupart des pages ont besoin de défilement et que je ne peux pas connaître la hauteur à l’avance.
L’autre méthode consiste à sélectionner une très grande hauteur (4000px, par exemple), puis à traiter l’image et à supprimer la partie inutile. Mais c'est un traitement inutile.
J'ai trouvé de nombreux add-ons pour Firefox, mais je cherche une solution pouvant être programmée à l'aide de la ligne de commande Shell.
Edit: J'ai fini par écrire mon propre extension FireFox pour le faire.
Le Developer Toolbar GCLI et Shift+F2 les raccourcis ont été supprimés dans Firefox version 6 . Pour prendre une capture d'écran dans 60 ou plus récent:
:screenshot
ou :screenshot --fullpage
En savoir plus sur les captures d'écran et autres fonctionnalités
Pour les versions de Firefox <60:
Appuyez sur Shift+F2 ou allez dans Outils> Développeur Web> Barre d’outils pour développeurs pour ouvrir une ligne de commande. Écrire:
screenshot
et appuyez sur . Entrez pour prendre une capture d'écran.
Pour répondre pleinement à la question, vous pouvez même sauvegarder la page entière, pas seulement la partie visible de celle-ci:
screenshot --fullpage
Et pour copier la capture d'écran dans le presse-papiers, utilisez l'option --clipboard
:
screenshot --clipboard --fullpage
Firefox 18 change la manière dont les arguments sont passés aux commandes, vous devez ajouter "-" avant elles.
Vous pouvez trouver de la documentation et la liste complète des commandes ici .
PS Les captures d'écran sont enregistrées par défaut dans le répertoire downloads .
Mise à jour 2018-07-23
Comme il vient d'être souligné dans les commentaires, cette question portait sur l'obtention d'une capture d'écran à partir de la ligne de commande . Désolé, je viens de lire cela. Alors voici la bonne réponse:
À partir de Firefox 57, vous pouvez créer une capture d'écran en mode sans tête comme ceci:
firefox -screenshot https://developer.mozilla.com
Plus d'informations dans la documentation .
Mise à jour 2017-06-15
A partir de Firefox 55, il existe Captures d'écran Firefox comme alternative plus flexible. À partir de Firefox 57, les captures d'écran peuvent également capturer une page entière.
Réponse originale
Depuis Firefox 32, il existe également un bouton de capture d'écran de la page complète dans les outils de développement (F12). S'il n'est pas activé, accédez aux paramètres des outils de développement (bouton d'engrenage) et choisissez "Prendre une capture d'écran de page entière" dans la section "Boutons de la boîte à outils disponibles".
source: developer.mozilla.org
Par défaut, les captures d'écran sont enregistrées dans le répertoire de téléchargement. Cela fonctionne de manière similaire à screenshot --fullpage
dans la barre d’outils.
J'ai fini par coder une solution personnalisée (extension Firefox) qui fait cela. Je pense qu'au moment où je l'ai développé, la ligne de commande mentionnée dans enreas n'était pas là.
L'extension Firefox est CmdShots . C'est une bonne option si vous avez besoin d'un contrôle plus précis sur le processus de prise de capture d'écran (ou si vous souhaitez effectuer des modifications HTML/JS et un traitement d'image).
Vous pouvez l'utiliser et en abuser. J'ai décidé de le garder sans licence, vous êtes donc libre de jouer avec comme vous voulez.
Je pense que ce que vous recherchez est un utilitaire qui vous permet de sauvegarder dans un fichier png une page complète ouverte dans votre navigateur. Très probablement, vous recherchez un utilitaire tel que commandlineprint2 .
Après avoir installé l'extension, il vous suffit de taper la commande:
firefox -print http://google.com -printfile ~/foo.png
Captures d'écran Firefox est un nouvel outil livré avec Firefox. Ce n'est pas un outil de développement, il est destiné aux utilisateurs finaux du navigateur.
Pour prendre une capture d'écran, cliquez sur le menu Actions de la page dans la barre d'adresse, puis cliquez sur "Prendre une capture d'écran". Si vous cliquez ensuite sur "Enregistrer la page complète", la page entière sera sauvegardée en défilant pour vous.