Heim > Web-Frontend > js-Tutorial > Wie implementiert man eine Zeitverzögerung in Puppeteer?

Wie implementiert man eine Zeitverzögerung in Puppeteer?

Mary-Kate Olsen
Freigeben: 2024-11-17 05:08:03
Original
739 Leute haben es durchsucht

How to Implement a Time Delay in Puppeteer?

Warten auf eine bestimmte Dauer in Puppeteer

In Puppeteer müssen Entwickler gelegentlich die Ausführung für einen definierten Zeitraum anhalten, bevor sie mit dem fortfahren nächste Codezeile. Während Versuche, setTimeout in Auswertungsfunktionen zu integrieren, wie eine praktikable Lösung erscheinen mögen, stoßen sie häufig auf unerwartetes Verhalten.

Lösungen zum Anhalten der Ausführung

  1. Versprochen -basierte Verzögerung: Eine einfache und effektive Methode besteht darin, eine Verzögerungsfunktion als Versprechen zu definieren und sie dann immer dann aufzurufen, wenn eine Pause vorliegt gewünscht.
function delay(time) {
   return new Promise(function(resolve) { 
       setTimeout(resolve, time)
   });
}
Nach dem Login kopieren

Zum Beispiel, um 4 Sekunden lang anzuhalten:

console.log('before waiting');
await delay(4000);
console.log('after waiting');
Nach dem Login kopieren
  1. page.waitForTimeout: Puppeteer bietet eine integrierte in der Funktion speziell für entwickelt Warten.
await page.waitForTimeout(4000)
Nach dem Login kopieren
  1. Resolved Evaluate: Wenn die page.evaluate-Funktion bevorzugt wird, ist es entscheidend, das Versprechen nach Ablauf der gewünschten Verzögerung aufzulösen abgelaufen.
await page.evaluate(async() => {
    await new Promise(function(resolve) { 
           setTimeout(resolve, 1000)
    });
});
Nach dem Login kopieren

Empfehlung

Während der Bewertungsansatz verwendet werden kann, sind die ersten beiden Methoden im Allgemeinen einfacher und effizienter.

Das obige ist der detaillierte Inhalt vonWie implementiert man eine Zeitverzögerung in Puppeteer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage