ギリギリジンジン

なんでもギリギリだ。

Node.jsでSeleniumを使用してWebページの読み込み時間を計測する

 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、JavaScriptCSSファイルなどのすべてのリソースの読み込みが完了するloadEventEndなどが含まれます。このコードでは、loadEventEndとrequestStartの差を計算することで、すべてのリソースの読み込みが完了するまでの時間を計測しています。

つまり、このコードによって計測される時間は、HTMLファイルを含めたすべてのリソースが読み込み完了するまでの時間です。