Quero fazer uma captura de tela de uma página com o Chrome Headless, e vimos --screenshot
as --virtual-time-budget
opções e as opções para tirar uma captura de tela e limitar o tempo de carregamento do navegador.
No entanto, tenho elementos na página que aguardam a renderização de DOMContentLoaded e também queremos capturá-los.
Estou procurando uma maneira de tirar uma captura de tela, digamos, 5 segundos depois que a página é carregada, e não exatamente quando é considerada carregada.
Estamos chamando o Chrome Headless de nosso aplicativo NodeJS da seguinte forma:
cp.spawnSync("google-chrome-beta", ["--headless", "--disable-gpu", "--screenshot", "--profile-directory=Default", "--window-size=1920,6200", "--virtual-time-budget=25000", url]);
Sabemos que existem possíveis bibliotecas npm que podem conseguir isso usando uma API do nó, em vez de usar opções de linha de comando, mas estamos preocupados com a estabilidade (a equipe do Chrome gosta de quebrar todas as APIs internas regularmente).
TL; DR
Existe alguma maneira de fazer o Chrome Headless esperar alguns segundos após o carregamento da página antes de fazer uma captura de tela?
nodejs index.js --url="http://www.eff.org" --delay=5000
por 5 segundos de atraso.