Chrome ヘッドレス コマンドライン リファレンス

Peter Kvitek
Peter Kvitek

次のコマンドライン フラグは、ヘッドレス モードとヘッドレス シェルで使用できます。

--dump-dom

--dump-dom フラグは、ターゲット ページのシリアル化された DOM を stdout に出力します。次に例を示します。

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

これは、curl で行う HTML ソースコードの出力とは異なります。--dump-dom の出力を取得するために、Chrome はまず HTML コードを DOM に解析し、DOM を変更する可能性のある <script> を実行してから、その DOM を HTML のシリアル化された文字列に戻します。

--screenshot

--screenshot フラグは、ターゲット ページのスクリーンショットを撮り、現在の作業ディレクトリに screenshot.png として保存します。これは、--window-size フラグと組み合わせて使用すると特に便利です。

次に例を示します。

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

--print-to-pdf

--print-to-pdf フラグは、ターゲット ページを現在の作業ディレクトリに output.pdf という名前の PDF として保存します。次に例を示します。

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

必要に応じて、--no-pdf-header-footer フラグを追加して、印刷ヘッダー(現在の日時を含む)とフッター(URL とページ番号を含む)を省略できます。

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

--timeout

--timeout フラグは、ページの読み込みが完了していなくても、--dump-dom--screenshot--print-to-pdf によってページのコンテンツがキャプチャされるまでの最大待機時間(ミリ秒単位)を定義します。

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

--timeout=5000 フラグは、PDF を印刷する前に最大 5 秒間待機するように Chrome に指示します。したがって、このプロセスの実行には最大 5 秒かかります。

--virtual-time-budget

--virtual-time-budget は、時間依存のコード(setTimeout/setInterval など)の「早送り」として機能します。これにより、ブラウザはページのコードをできるだけ早く実行しながら、時間が実際に経過しているとページに認識させることができます。

使用例として、 1 秒ごとにカウンタをインクリメント、ロギング、表示する こちらのデモをご覧ください。setTimeout(fn, 1000)関連するコードは次のとおりです。

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

1 秒後、ページには「1」が表示されます。2 秒後には「2」が表示されます。 42 秒後のページの状態をキャプチャして PDF として保存する方法は次のとおりです。

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

--allow-chrome-scheme-url

chrome:// URL にアクセスするには、--allow-chrome-scheme-url フラグが必要です。このフラグは Chrome 123 以降で使用できます。次に例を示します。

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