Quiero hacer una captura de pantalla de una página con Chrome Headless, y hemos visto tanto --screenshot
y el --virtual-time-budget
interruptores para tomar una captura de pantalla y limitar el tiempo de carga que espera el navegador.
Sin embargo, tengo elementos en la página que esperan a que DOMContentLoaded se renderice, y queremos capturarlos también.
Estoy buscando una manera de tomar una captura de pantalla, digamos, 5 segundos después la página se carga, en lugar de la derecha cuando se considera cargada.
Estamos llamando a Chrome Headless desde nuestra aplicación NodeJS así:
cp.spawnSync("google-chrome-beta", ["--headless", "--disable-gpu", "--screenshot", "--profile-directory=Default", "--window-size=1920,6200", "--virtual-time-budget=25000", url]);
Sabemos que hay posibles bibliotecas npm que pueden lograr esto utilizando una API desde el nodo, en lugar de usar interruptores de línea de comandos, pero nos preocupa la estabilidad (al equipo de Chrome le gusta romper todas sus API internas con regularidad).
TL; DR
¿Hay alguna forma de hacer que Chrome Headless espere unos segundos después de cargar la página antes de tomar una captura de pantalla?
nodejs index.js --url="http://www.eff.org" --delay=5000
Por 5 segundos de retraso.