Voglio fare uno screenshot di una pagina con Chrome Headless, e abbiamo visto sia --screenshot
gli --virtual-time-budget
switch che gli switch per fare uno screenshot e limitare l'attesa del browser per il tempo di caricamento.
Tuttavia, nella pagina sono presenti elementi che attendono il rendering di DOMContentLoaded e vogliamo catturare anche quelli.
Sto cercando un modo per fare uno screenshot, diciamo, 5 secondi dopo che la pagina è stata caricata, invece che a destra quando è considerata caricata.
Chiamiamo Chrome Headless dalla nostra applicazione NodeJS in questo modo:
cp.spawnSync("google-chrome-beta", ["--headless", "--disable-gpu", "--screenshot", "--profile-directory=Default", "--window-size=1920,6200", "--virtual-time-budget=25000", url]);
Sappiamo che ci sono possibili librerie npm che possono ottenere questo risultato utilizzando un'API dal nodo, invece di utilizzare le opzioni della riga di comando, ma siamo preoccupati per la stabilità (al team di Chrome piace rompere regolarmente tutte le loro API interne).
TL; DR
Esiste un modo per far attendere Chrome Headless qualche secondo dopo il caricamento della pagina prima di fare uno screenshot?
nodejs index.js --url="http://www.eff.org" --delay=5000
per 5 secondi di ritardo.