Las siguientes marcas de línea de comandos están disponibles en el modo Headless y en Headless shell.
--dump-dom
La marca --dump-dom imprime el DOM serializado de la página de destino en stdout.
Por ejemplo:
chrome --headless --dump-dom https://developer.chrome.com/
Esto es diferente de imprimir el código fuente HTML, lo que puedes hacer con curl. Para mostrar el resultado de --dump-dom, Chrome primero analiza el código HTML
en un DOM, ejecuta cualquier <script> que pueda modificar el DOM y, luego,
convierte ese DOM en una cadena serializada de HTML.
--screenshot
La marca --screenshot toma una captura de pantalla de la página de destino y la guarda como screenshot.png en el directorio de trabajo actual. Esto es muy útil en combinación con la marca --window-size.
Por ejemplo:
chrome --headless --screenshot --window-size=412,892 https://developer.chrome.com/
--print-to-pdf
La marca --print-to-pdf guarda la página de destino como un PDF llamado output.pdf en el directorio de trabajo actual. Por ejemplo:
chrome --headless --print-to-pdf https://developer.chrome.com/
También puedes agregar la marca --no-pdf-header-footer para omitir el encabezado de impresión (con la fecha y la hora actuales) y el pie de página (con la URL y el número de página).
chrome --headless --print-to-pdf --no-pdf-header-footer https://developer.chrome.com/
--timeout
La marca --timeout define el tiempo máximo de espera (en milisegundos) después del cual --dump-dom, --screenshot y --print-to-pdf capturan el contenido de la página, incluso si la página aún se está cargando.
chrome --headless --print-to-pdf --timeout=5000 https://developer.chrome.com/
La marca --timeout=5000 le indica a Chrome que espere hasta 5 segundos antes de imprimir el PDF. Por lo tanto, este proceso tarda como máximo 5 segundos en ejecutarse.
--virtual-time-budget
La marca --virtual-time-budget actúa como un "avance rápido" para cualquier código dependiente del tiempo (por ejemplo, setTimeout/setInterval). Obliga al navegador a ejecutar cualquier código de la página lo más rápido posible mientras hace que la página crea que el tiempo realmente pasa.
Para ilustrar su uso, considera esta demostración, que
incrementa, registra y muestra un contador cada segundo
con setTimeout(fn, 1000). Este es el código pertinente:
<output>0</output>
<script>
const element = document.querySelector('output');
let counter = 0;
setInterval(() => {
counter++;
console.log(counter);
element.textContent = counter;
}, 1_000);
</script>
Después de un segundo, la página contiene "1"; después de dos segundos, "2", y así sucesivamente. Esta es la forma de capturar el estado de la página después de 42 segundos y guardarlo como un PDF:
chrome --headless --print-to-pdf --virtual-time-budget=42000 https://mathiasbynens.be/demo/time
--allow-chrome-scheme-url
Se requiere la marca --allow-chrome-scheme-url para acceder a las URLs chrome://. Esta marca está disponible a partir de Chrome 123. Por ejemplo:
chrome --headless --print-to-pdf --allow-chrome-scheme-url chrome://gpu