Chrome Headless opdrachtregelreferentie

Peter Kvitek
Peter Kvitek

De volgende opdrachtregelopties zijn beschikbaar in de headless-modus en in de headless-shell.

--dump-dom

De vlag --dump-dom print de geserialiseerde DOM van de doelpagina naar de standaarduitvoer. Bijvoorbeeld:

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

Dit is anders dan het afdrukken van de HTML-broncode, wat je bijvoorbeeld met curl zou kunnen doen. Om de uitvoer van --dump-dom te tonen, parseert Chrome eerst de HTML-code naar een DOM, voert alle <script> uit die de DOM mogelijk wijzigen, en zet die DOM vervolgens weer om in een geserialiseerde HTML-string.

--screenshot

De vlag --screenshot maakt een schermafbeelding van de doelpagina en slaat deze op als screenshot.png in de huidige werkmap. Dit is vooral handig in combinatie met de vlag --window-size .

Bijvoorbeeld:

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

--print-to-pdf

De vlag --print-to-pdf slaat de doelpagina op als een PDF-bestand met de naam output.pdf in de huidige werkmap. Bijvoorbeeld:

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

Optioneel kunt u de vlag --no-pdf-header-footer toevoegen om de afdrukheader (met de huidige datum en tijd) en -footer (met de URL en het paginanummer) weg te laten.

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

--timeout

De vlag --timeout definieert de maximale wachttijd (in milliseconden) waarna de inhoud van de pagina wordt vastgelegd door --dump-dom , --screenshot en --print-to-pdf zelfs als de pagina nog aan het laden is.

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

De vlag --timeout=5000 geeft Chrome de opdracht om maximaal 5 seconden te wachten voordat de PDF wordt afgedrukt. Dit proces duurt dus maximaal 5 seconden.

--virtual-time-budget

De --virtual-time-budget werkt als een "snelle doorspoelfunctie" voor alle tijdsafhankelijke code (bijvoorbeeld setTimeout / setInterval ). Het dwingt de browser om alle code van de pagina zo snel mogelijk uit te voeren, terwijl de pagina de indruk wekt dat de tijd daadwerkelijk verstrijkt.

Om het gebruik ervan te illustreren, bekijk deze demo, die elke seconde een teller verhoogt, registreert en weergeeft met behulp van setTimeout(fn, 1000) . Hier is de relevante code:

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

Na één seconde bevat de pagina "1"; na twee seconden "2", enzovoort. Zo kunt u de status van de pagina na 42 seconden vastleggen en opslaan als een PDF:

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

--allow-chrome-scheme-url

De vlag --allow-chrome-scheme-url is vereist om toegang te krijgen chrome:// URL's. Deze vlag is beschikbaar vanaf Chrome 123. Hier is een voorbeeld:

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