Puppeteer で遅延を実装する方法: setTimeout と waitForTimeout?

Patricia Arquette
リリース: 2024-11-21 11:24:10
オリジナル
392 人が閲覧しました

How to Implement Delays in Puppeteer: setTimeout vs waitForTimeout?

Puppeteer での実行の遅延

Puppeteer では、さまざまな方法で実行を継続する前に指定された期間効果的に待機することができます。一般的なアプローチの 1 つは、評価関数内で setTimeout 関数を利用することです。ただし、setTimeout がバイパスされているように見える場合があります。

この問題に対処するには、Promise を利用するカスタム遅延関数を実装できます。この関数は、時間パラメータを受け取り、Promise を返します。この関数内で、指定された時間実行を一時停止するように setTimeout リゾルバーを設定します。

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

その後、4 秒の遅延を導入したい場合はいつでも、lay(4000) を呼び出すことができます。

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

あるいは、Puppeteer は、プロセスを簡素化する組み込みの waitForTimeout 関数を提供します。単に page.waitForTimeout(4000) を使用します。

どうしても page.evaluate を使用する場合は、必要な遅延の後に Promise を解決できます。次のコードは、このアプローチを示しています:

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

以上がPuppeteer で遅延を実装する方法: setTimeout と waitForTimeout?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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