ホームページ >ウェブフロントエンド >jsチュートリアル >Puppeteer に遅延を導入する方法: 最良の解決策は何ですか?

Puppeteer に遅延を導入する方法: 最良の解決策は何ですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-13 14:59:02615ブラウズ

How to Introduce Delays in Puppeteer: What are the Best Solutions?

Puppeteer での実行の一時停止: 続行するまでの待機時間

Puppeteer を使用する場合、後続の行を実行する前に遅延を導入する必要がある場合があります。コード。ただし、評価関数内で setTimeout 関数を使用しようとすると、失敗することがよくあります。

解決策 1: Promise 関数を使用する

シンプルで効果的な解決策は次のとおりです。以下に示すように、Promise 関数を使用します。

function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}

遅延を作成するには、目的の期間を指定する時間引数を指定して関数を呼び出すだけです。

console.log('before waiting');
await delay(4000);
console.log('after waiting');

解決策2: Puppeteer の waitForTimeout を使用する

Puppeteer は、この目的に利用できる waitForTimeout という組み込み関数を提供します。

await page.waitForTimeout(4000)

解決策 3: page.evaluate を使用する(時間が経つと解決)

前のソリューションほど単純ではありませんが、page.evaluate を利用してこのタスクを処理することができます。指定された時間の後に Promise を解決することで、遅延を導入できます。

await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});

結論

これらのメソッドは、状況に応じて、Puppeteer に遅延を導入するためのさまざまなアプローチを提供します。開発者の特定の要件と好み。

以上がPuppeteer に遅延を導入する方法: 最良の解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。