Chrome Headless komut satırı referansı

Peter Kvitek
Peter Kvitek

Aşağıdaki komut satırı işaretleri, gözetimsiz modda ve gözetimsiz kabukta kullanılabilir.

--dump-dom

--dump-dom işareti, hedef sayfanın serileştirilmiş DOM'unu stdout'a yazdırır. Örneğin:

chrome --headless --dump-dom https://developer.chrome.com/

Bu, HTML kaynak kodunu yazdırmaktan farklıdır. HTML kaynak kodunu yazdırmak için curl tuşunu kullanabilirsiniz. Chrome, --dump-dom çıktısını size sunmak için önce HTML kodunu bir DOM'a ayrıştırır, DOM'u değiştirebilecek tüm <script> öğelerini yürütür ve ardından bu DOM'u tekrar HTML'nin serileştirilmiş bir dizesine dönüştürür.

--screenshot

--screenshot işareti, hedef sayfanın ekran görüntüsünü alır ve geçerli çalışma dizinine screenshot.png olarak kaydeder. Bu, özellikle --window-size işaretiyle birlikte kullanıldığında yararlıdır.

Örneğin:

chrome --headless --screenshot --window-size=412,892 https://developer.chrome.com/

--print-to-pdf

--print-to-pdf işareti, hedef sayfayı geçerli çalışma dizininde output.pdf adlı bir PDF olarak kaydeder. Örneğin:

chrome --headless --print-to-pdf https://developer.chrome.com/

İsteğe bağlı olarak, yazdırma üstbilgisini (geçerli tarih ve saatle) ve altbilgisini (URL ve sayfa numarasıyla) atlamak için --no-pdf-header-footer işaretini ekleyebilirsiniz.

chrome --headless --print-to-pdf --no-pdf-header-footer https://developer.chrome.com/

--timeout

--timeout işareti, sayfa hâlâ yükleniyor olsa bile sayfa içeriğinin --dump-dom, --screenshot ve --print-to-pdf tarafından yakalanacağı maksimum bekleme süresini (milisaniye cinsinden) tanımlar.

chrome --headless --print-to-pdf --timeout=5000 https://developer.chrome.com/

--timeout=5000 işareti, Chrome'a PDF'yi yazdırmadan önce 5 saniye beklemesini söyler. Bu nedenle, bu işlemin çalışması en fazla 5 saniye sürer.

--virtual-time-budget

--virtual-time-budget, zamana bağlı kodlar (örneğin, setTimeout/setInterval) için "ileri sarma" işlevi görür. Tarayıcıyı, sayfanın kodunu mümkün olduğunca hızlı bir şekilde yürütmeye zorlarken sayfanın zamanın gerçekten geçtiğine inanmasını sağlar.

Kullanımını göstermek için setTimeout(fn, 1000) kullanarak her saniyede bir sayacı artıran, kaydeden ve görüntüleyen şu demoyu inceleyin. İlgili kod:

<output>0</output>
<script>
  const element = document.querySelector('output');
  let counter = 0;
  setInterval(() => {
    counter++;
    console.log(counter);
    element.textContent = counter;
  }, 1_000);
</script>

Bir saniye sonra sayfada "1", iki saniye sonra "2" vb. değerler yer alır. Sayfanın durumunu 42 saniye sonra yakalayıp PDF olarak kaydetmek için şu adımları uygulayın:

chrome --headless --print-to-pdf --virtual-time-budget=42000 https://mathiasbynens.be/demo/time

--allow-chrome-scheme-url

chrome:// URL'lerine erişmek için --allow-chrome-scheme-url flag'i gerekir. Bu flag, Chrome 123'ten itibaren kullanılabilir. Aşağıda bununla ilgili bir örnek verilmiştir:

chrome --headless --print-to-pdf --allow-chrome-scheme-url chrome://gpu