Chrome Headlessを使用してページのスクリーンショットを作成したいのですが、スクリーンショットを取得し、ブラウザーの読み込み時間を制限するため--screenshot
の--virtual-time-budget
スイッチとスイッチの両方を確認しました。
ただし、ページにはDOMContentLoadedがレンダリングされるのを待つ要素があり、それらもキャプチャする必要があります。
たとえば、ページが読み込まれたと見なされるときではなく、ページが読み込まれてから 5秒後にスクリーンショットを撮る方法を探しています。
NodeJSアプリケーションからChrome Headlessを次のように呼び出しています。
cp.spawnSync("google-chrome-beta", ["--headless", "--disable-gpu", "--screenshot", "--profile-directory=Default", "--window-size=1920,6200", "--virtual-time-budget=25000", url]);
コマンドラインスイッチを使用する代わりに、ノードからのAPIを使用してこれを実現できるnpmライブラリが存在する可能性があることはわかっていますが、安定性が心配です(Chromeチームは、すべての内部APIを定期的に破るのが好きです)。
TL; DR
とにかく、スクリーンショットを撮る前に、Chrome Headlessをページの読み込み後数秒間待機させる方法はありますか?
nodejs index.js --url="http://www.eff.org" --delay=5000
5秒の遅延で実行します。