Komut satırında Firefox ile tam sayfa ekran görüntüsü alın


225

Firefox'u bir VPS'deki Xvfb'de çalıştırıyorum. Yapmak istediğim şey sayfanın tam sayfa ekran görüntüsünü almak.

Firefox'u kullanarak belirli bir sayfaya yönlendirebilirim

firefox http://google.com

ve ImageMagick kullanarak ekran görüntüsü (X'in içinde) alın

import root -window output.jpg

Sorun şu ki, sayfanın çoğunun kaydırılması gerekiyor ve yüksekliği önceden bilmiyorum.

Diğer yol çok büyük bir yükseklik (4000 piksel gibi) seçip görüntüyü işlemek ve işe yaramaz kısmı kaldırmaktır. Ancak bu gereksiz bir işlemdir.

Birçok Firefox eklentisi buldum, ancak Shell Command satırını kullanarak programlanabilecek bir çözüm arıyorum.

Düzenleme: Bunu yapmak için kendi FireFox uzantımı yazma sona erdi .


1
Ekran görüntüsü almak için bazı webkit cli araçları gördüm ama isimleri hatırlamıyorum.
Rufo El Magufo

Yanıtlar:


480

Geliştirici Araç Çubuğu GCLI ve Shift+ F2kısayol Firefox sürüm 60 çıkarıldı . 60 veya daha yeni bir ekran görüntüsü almak için:

  • geliştirici konsolunu açmak için Ctrl+ Shift+ tuşlarına basın K( macOS'ta ⌥ Option+ ⌘ Command+ K)
  • yazın :screenshotveya:screenshot --fullpage

Ekran görüntüleri ve diğer özellikler hakkında daha fazla bilgi edinin


Firefox <60 sürümleri için:

Bir komut satırı açmak için Shift+ tuşuna basın F2veya Araçlar> Web Geliştiricisi> Geliştirici Araç Çubuğu'na gidin . Yazmak:

screenshot

ve ekran görüntüsü almak için Enter tuşuna basın .

Soruyu tam olarak cevaplamak için, sadece görünen kısmını değil, tüm sayfayı da kaydedebilirsiniz:

screenshot --fullpage

Ekran görüntüsünü panoya kopyalamak için --clipboardseçeneği kullanın:

screenshot --clipboard --fullpage

Firefox 18 , argümanların komutlara aktarılma şeklini değiştirir, onlardan önce "-" eklemeniz gerekir.

Bazı belgeleri ve komutların tam listesini burada bulabilirsiniz .

PS. Ekran görüntüleri varsayılan olarak indirilenler dizinine kaydedilir .


4
Ekran görüntüsünü panonuza kopyalamak istiyorsanız, doğrudan ekran görüntüsünü kullanın
klavye tam mbokil

2
Bu komut bir javascript konsolunda çalışmıyor, bu nedenle bu araç çubuğu hakkında daha fazla bilgi için bir bağlantı var mı? Başka ne yapabilir?
tremby

5
Sadece FYI, müfettiş aracılığıyla DOM notlarını ve ardından right-click-> öğesini de seçebilirsiniz screenshot node. Bir sayfanın bir bölümünün ekran görüntüsünü almak istediğinizde bu çok yardımcı olur.
Tom

5
Tam sayfa ekran görüntüsü panoya - screenshot --clipboard --fullpageBelirli bir düğümün ekran görüntüsü ( screenshot --clipboard --selector #elementId
kimliğe

3
:screenshot --clipboard --fullpage
Kullanmak

134

Güncelleme 2018-07-23

Yorumlarda da belirtildiği gibi, bu soru komut satırından ekran görüntüsü almakla ilgiliydi . Üzgünüm, bunu okudum. İşte doğru cevap:

Firefox 57'den itibaren başsız modda aşağıdaki gibi bir ekran görüntüsü oluşturabilirsiniz:

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

Belgelerde daha fazla bilgi edinin .

Güncelleme 2017-06-15

Firefox 55 itibariyle daha esnek bir alternatif olarak Firefox Ekran Görüntüleri . Firefox 57'den itibaren Ekran görüntüleri de tam bir sayfa yakalayabilir.

Orijinal cevap

Firefox 32'den beri , geliştirici araçlarında (F12) tam sayfa ekran görüntüsü düğmesi de vardır. Etkinleştirilmemişse, geliştirici araçları ayarlarına (dişli düğmesi) gidin ve "Kullanılabilir Araç Kutusu Düğmeleri" bölümünde "Tam sayfa ekran görüntüsü al" ı seçin.

geliştirici araçları araç çubuğu Kaynak: developer.mozilla.org

Varsayılan olarak ekran görüntüleri indirme dizinine kaydedilir. Bu screenshot --fullpage, araç çubuğundaki ile benzer şekilde çalışır .


7
Firebug'un F12'de açılması için, geliştirici araçları Ctrl + Shift + K veya Ctrl + Shift + I ile kullanılabilir. Sadece ... durumda ... biri daha önce hiç kullanmamış.
Kir Kanos

Bu klavye kısayolları Mac'te çalışmaz. Araçlar> Web Geliştiricisi> Araçları Aç / Kapat'ı kullanın. Ve evet, ekran görüntüsü düğmesi varsayılan olarak devre dışıdır. Etkinleştirmek için Ayarlar simgesini tıklayın.
Mart'ta kar yağışı

Mac'te, geliştirici araçlarını cmd+ alt+ ile açabilirsinizi
achairapart

Firefox Ekran Görüntüleri, Mozilla'nın sunucularına çekilen ekran görüntülerini yükler. Bunu önceden fark etmem için yeterince elverişli yapmadılar. Neyse ki benim durumumdaki görüntü içsel olmasına rağmen çok hassas değildi. Dikkatli olun.
Hammer Bro.

1
Sorudan: "Birçok Firefox eklentisi buldum, ancak Kabuk Komut satırı kullanılarak programlanabilecek bir çözüm arıyorum."
Quentin

9

Bunu yapan özel bir çözüm (Firefox eklentisi) kodladım. Bence onu geliştirdiğim zaman, enreaste bahsedilen komut satırı orada değildi.

Firefox uzantısı CmdShots . Ekran görüntüsünü alma işlemi üzerinde daha fazla kontrole ihtiyacınız varsa (veya bazı HTML / JS değişiklikleri ve görüntü işleme yapmak istiyorsanız) iyi bir seçenektir.

Kullanabilir ve kötüye kullanabilirsiniz. Lisanssız tutmaya karar verdim, bu yüzden istediğiniz gibi oynamakta özgürsünüz.


20
Hmm, "lisanssız" demek değildir: aslında herhangi bir kullanım için herhangi bir izin vermediğiniz anlamına gelir, ki bu kesinlikle doğru değildir, çünkü bu cümlede kullanmanın, kötüye kullanmanın ve onunla oynamanın uygun olduğunu söylüyorsunuz. istemek. Belki de CC0 gibi bir şey istersiniz ?
SamB

Bu "lisanssız" şeyler için bunu tercih: wtfpl.net Yasal BS olmadan neye izin verildiğini açıkça belirtir.
kap

@ SamB Yorumunuza rastgele rastladım. Evet, 3 yıl sonra biliyorum. Sorun şu ki, eğer bir Lisans yazarsam, zaten karmaşık şeyler yapıyorum. NOLICENSE yaklaşımı basitçe şeyler yapmaktır.
Omar Abid

3
Lütfen millet, özel lisans kullanmayın. İnsanların kendi lisanslarını yazarak yasal saçmalıklardan kaçınmaya çalıştıklarını biliyorum, ancak tam tersini yapıyorlar ve özel lisansın gerçekte ne anlama geldiğini anlamaya çalışırken insanlar için yasal baş ağrılarına neden oluyorlar. Choosealicense.com bakın
Flimm

@SamB - "lisanssız" açıkça bir "resmi lisans" değilken, "İşlemin" aslında olan bir lisans ve oldukça yakın OP onun kod kullanımı için onun niyeti olarak tanımladığı gibi görünüyor. Bkz. Choosealicense.com/licenses/unlicense
Ediger

8

Aradığınızı , tarayıcınızda açılan tam bir sayfayı bir png dosyasına kaydetmenizi sağlayan bir yardımcı program olduğunu düşünüyorum . Muhtemelen commandlineprint2 gibi bir yardımcı program arıyorsunuz .

Uzantıyı yükledikten sonra, sadece komutu yazmanız gerekir:

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

1

Firefox Screenshots , Firefox ile birlikte gelen yeni bir araçtır. Bir geliştirici aracı değil, tarayıcının son kullanıcılarını hedefliyor.

Ekran görüntüsü almak için adres çubuğundaki sayfa işlemleri menüsünü ve "ekran görüntüsü al" ı tıklayın. Daha sonra "Tam sayfayı kaydet" i tıklarsanız, tam sayfa kaydedilir ve sizin için kaydırılır.


(kaynak: mozilla.net )


3
Sorudan: "Birçok Firefox eklentisi buldum, ancak Kabuk Komut satırı kullanılarak programlanabilecek bir çözüm arıyorum."
Quentin

-1

Firefox için selenyum ve web sürücüsü kullanabilirsiniz.

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')
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.