Puppeteer の実行フローに遅延と一時停止を導入するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-10 04:29:02
オリジナル
522 人が閲覧しました

How to Introduce Delays and Pauses in Puppeteer Execution Flow?

Puppeteer での実行フローの制御: 遅延と一時停止の実装

Puppeteer では、後続の処理に進む前に実行を一時停止または遅延する必要がよくあります。コード行。これは、Web ページとの同期やユーザー インタラクションの効果的なシミュレーションに不可欠です。

一般的なアプローチの 1 つは、コールバックと時間間隔をパラメータとして受け取る JavaScript の setTimeout 関数を使用することです。ただし、提供されたコード スニペットに示されているように、このメソッドは Puppeteer のコンテキスト内で意図した結果を達成しません。

解決策には、Promise ベースのアプローチを活用することが含まれます。 1 つの方法は、遅延関数を定義することです:

function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}
ログイン後にコピー

この関数を呼び出すことにより、指定された期間の遅延が実行フローに導入されます:

console.log('before waiting');
await delay(4000);
console.log('after waiting');
ログイン後にコピー

Puppeteer はまた、ビルドされた-in waitForTimeout 関数は、一時停止期間を直接制御できます:

await page.waitForTimeout(4000)
ログイン後にコピー

さらに、遅延を導入するために page.evaluate を使用したい場合は、コールバック関数が遅延の後に適切に解決されることを確認することが重要です。希望の間隔:

await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});
ログイン後にコピー

これらの遅延テクニックを実装すると、Puppeteer の実行フローを効果的に制御でき、Web ページとの適切な同期と現実的な対話が保証されます。

以上がPuppeteer の実行フローに遅延と一時停止を導入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート