다음 명령줄 플래그는 헤드리스 모드 및 헤드리스 셸에서 사용할 수 있습니다.
--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 플래그는 Chrome에 PDF를 인쇄하기 전에 최대 5초 동안 기다리도록 지시합니다. 따라서 이 프로세스는 실행하는 데 최대 5초가 걸립니다.
--virtual-time-budget
--virtual-time-budget은 시간 종속 코드(예: setTimeout/setInterval)의 '빨리 감기' 역할을 합니다. 페이지가 시간이 실제로 경과한다고 믿게 하면서 브라우저가 페이지의 코드를 최대한 빨리 실행하도록 합니다.
사용법을 설명하기 위해
매초 카운터를 증가시키고, 기록하고, 표시하는
이 데모를 살펴보세요. 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