driver.executeScript( "return (window.performance.timing.loadEventEnd - window.performance.timing.requestStart) / 1000") .then(function(sec_loading_time){ console.log(sec_loading_time); });
上記コードをChatGPTにawaitを使った記述に変更してもらった。
(async () => { const sec_loading_time = await driver.executeScript( "return (window.performance.timing.loadEventEnd - window.performance.timing.requestStart) / 1000" ); console.log(sec_loading_time); })();
以下は、ChatGPTにコードを説明してもらったものからの抜粋。
このコードは、Node.jsでSeleniumを使用して、特定のWebページの読み込み時間を計測するためにJavaScriptを実行しています。
executeScriptの説明部分
executeScript()は、ブラウザ内でJavaScriptコードを実行するためのSeleniumのメソッドです。引数として渡されたJavaScriptコードがブラウザ内で実行され、その結果を返します。
ここはキモとなる部分
"return (window.performance.timing.loadEventEnd - window.performance.timing.requestStart) / 1000"は、ページの読み込み時間を計算するJavaScriptコードです。performance.timingオブジェクトには、ブラウザのページ読み込みに関する情報が含まれています。ここでは、ページの読み込みが完了するまでにかかった時間を計算しています。この時間を秒単位で返すように指定しています。
ここの内容が重要
ここで測定される時間は、HTMLファイルを含めたページのすべてのリソースが読み込み完了するまでの時間です。
window.performance.timingオブジェクトは、ページの読み込みに関する様々なタイミング情報を提供します。その中には、HTMLファイルの読み込みが完了するresponseEnd、JavaScriptやCSSファイルなどのすべてのリソースの読み込みが完了するloadEventEndなどが含まれます。このコードでは、loadEventEndとrequestStartの差を計算することで、すべてのリソースの読み込みが完了するまでの時間を計測しています。
つまり、このコードによって計測される時間は、HTMLファイルを含めたすべてのリソースが読み込み完了するまでの時間です。