W trybie bez interfejsu graficznego i w powłoce bez interfejsu graficznego dostępne są te flagi wiersza poleceń:
--dump-dom
Flaga --dump-dom drukuje w stdout serializowany DOM strony docelowej.
Na przykład:
chrome --headless --dump-dom https://developer.chrome.com/
Różni się to od drukowania kodu źródłowego HTML, które można wykonać za pomocą curl. Aby uzyskać dane wyjściowe --dump-dom, Chrome najpierw analizuje kod HTML
do postaci DOM, wykonuje wszystkie elementy <script>, które mogą zmienić DOM, a następnie
przekształca ten DOM z powrotem w serializowany ciąg HTML.
--screenshot
Flaga --screenshot robi zrzut ekranu strony docelowej i zapisuje go jako screenshot.png w bieżącym katalogu roboczym. Jest to szczególnie przydatne w połączeniu z flagą --window-size.
Na przykład:
chrome --headless --screenshot --window-size=412,892 https://developer.chrome.com/
--print-to-pdf
Flaga --print-to-pdf zapisuje stronę docelową jako plik PDF o nazwie output.pdf w bieżącym katalogu roboczym. Na przykład:
chrome --headless --print-to-pdf https://developer.chrome.com/
Opcjonalnie możesz dodać flagę --no-pdf-header-footer, aby pominąć nagłówek (z bieżącą datą i godziną) oraz stopkę (z adresem URL i numerem strony).
chrome --headless --print-to-pdf --no-pdf-header-footer https://developer.chrome.com/
--timeout
Flaga --timeout określa maksymalny czas oczekiwania (w milisekundach), po którym zawartość strony jest przechwytywana przez --dump-dom, --screenshot i --print-to-pdf, nawet jeśli strona nadal się wczytuje.
chrome --headless --print-to-pdf --timeout=5000 https://developer.chrome.com/
Flaga --timeout=5000 nakazuje Chrome poczekać do 5 sekund przed wydrukowaniem pliku PDF. Dlatego ten proces trwa co najwyżej 5 sekund.
--virtual-time-budget
Flaga --virtual-time-budget działa jak „przewijanie do przodu” w przypadku kodu zależnego od czasu (np. setTimeout/setInterval). Wymusza na przeglądarce jak najszybsze wykonanie dowolnego kodu strony, jednocześnie sprawiając, że strona uważa, że czas rzeczywiście upływa.
Aby zilustrować jego użycie, rozważ ten przykład, który
co sekundę zwiększa, rejestruje i wyświetla licznik
za pomocą setTimeout(fn, 1000). Oto odpowiedni kod:
<output>0</output>
<script>
const element = document.querySelector('output');
let counter = 0;
setInterval(() => {
counter++;
console.log(counter);
element.textContent = counter;
}, 1_000);
</script>
Po sekundzie strona zawiera „1”, po 2 sekundach „2” itd. Oto jak możesz przechwycić stan strony po 42 sekundach i zapisać go jako plik PDF:
chrome --headless --print-to-pdf --virtual-time-budget=42000 https://mathiasbynens.be/demo/time
--allow-chrome-scheme-url
Flaga --allow-chrome-scheme-url jest wymagana do uzyskiwania dostępu do adresów URL chrome://. Ta flaga jest dostępna od Chrome 123. Oto przykład:
chrome --headless --print-to-pdf --allow-chrome-scheme-url chrome://gpu