As flags de linha de comando a seguir estão disponíveis no modo sem comando e no shell sem comando.
--dump-dom
A flag --dump-dom imprime o DOM serializado da página de destino em stdout.
Exemplo:
chrome --headless --dump-dom https://developer.chrome.com/
Isso é diferente de imprimir o código-fonte HTML, o que você pode fazer com curl. Para mostrar a saída de --dump-dom, o Chrome primeiro analisa o código HTML
em um DOM, executa qualquer <script> que possa alterar o DOM e, em seguida,
transforma esse DOM de volta em uma string HTML serializada.
--screenshot
A flag --screenshot faz uma captura de tela da página de destino e a salva como screenshot.png no diretório de trabalho atual. Isso é especialmente útil em combinação com a flag --window-size.
Exemplo:
chrome --headless --screenshot --window-size=412,892 https://developer.chrome.com/
--print-to-pdf
A flag --print-to-pdf salva a página de destino como um PDF chamado output.pdf no diretório de trabalho atual. Exemplo:
chrome --headless --print-to-pdf https://developer.chrome.com/
Opcionalmente, você pode adicionar a flag --no-pdf-header-footer para omitir o cabeçalho de impressão (com a data e hora atuais) e o rodapé (com o URL e o número da página).
chrome --headless --print-to-pdf --no-pdf-header-footer https://developer.chrome.com/
--timeout
A flag --timeout define o tempo máximo de espera (em milissegundos) após o qual o conteúdo da página é capturado por --dump-dom, --screenshot e --print-to-pdf, mesmo que a página ainda esteja carregando.
chrome --headless --print-to-pdf --timeout=5000 https://developer.chrome.com/
A flag --timeout=5000 informa ao Chrome para aguardar até 5 segundos antes de imprimir o PDF. Portanto, esse processo leva no máximo 5 segundos para ser executado.
--virtual-time-budget
O --virtual-time-budget funciona como um "avanço rápido" para qualquer código dependente do tempo (por exemplo, setTimeout/setInterval). Ele força o navegador a executar qualquer código da página o mais rápido possível, fazendo com que a página acredite que o tempo realmente passa.
Para ilustrar o uso, considere esta demonstração, que
incrementa, registra e mostra um contador a cada segundo
usando setTimeout(fn, 1000). Confira o código relevante:
<output>0</output>
<script>
const element = document.querySelector('output');
let counter = 0;
setInterval(() => {
counter++;
console.log(counter);
element.textContent = counter;
}, 1_000);
</script>
Após um segundo, a página contém "1"; após dois segundos, "2" e assim por diante. Veja como capturar o estado da página após 42 segundos e salvá-lo como um PDF:
chrome --headless --print-to-pdf --virtual-time-budget=42000 https://mathiasbynens.be/demo/time
--allow-chrome-scheme-url
A flag --allow-chrome-scheme-url é necessária para acessar URLs chrome://. Essa flag está disponível no Chrome 123. Exemplo:
chrome --headless --print-to-pdf --allow-chrome-scheme-url chrome://gpu