Heim >Web-Frontend >js-Tutorial >Wie kann man Verzögerungen bei Puppeteer einführen: Was sind die besten Lösungen?

Wie kann man Verzögerungen bei Puppeteer einführen: Was sind die besten Lösungen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-13 14:59:02665Durchsuche

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

Ausführung in Puppeteer anhalten: Wartezeit vor dem Fortfahren

Bei der Arbeit mit Puppeteer kann es notwendig sein, Verzögerungen einzuführen, bevor nachfolgende Zeilen ausgeführt werden Code. Versuche, die setTimeout-Funktion innerhalb einer Evaluierungsfunktion zu verwenden, scheiterten jedoch häufig.

Lösung 1: Verwendung einer Promise-Funktion

Eine einfache und effektive Lösung ist um eine Promise-Funktion zu verwenden, wie unten gezeigt:

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

Um eine Verzögerung zu erstellen, rufen Sie einfach die Funktion mit einem Zeitargument auf, das den gewünschten Wert angibt Dauer.

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

Lösung 2: WaitForTimeout von Puppeteer verwenden

Puppeteer bietet eine integrierte Funktion namens waitForTimeout, die für diesen Zweck verwendet werden kann:

await page.waitForTimeout(4000)

Lösung 3: Verwendung von page.evaluate (Behoben nach Zeit)

Obwohl es nicht so einfach ist wie die vorherigen Lösungen, ist es möglich, page.evaluate zu verwenden, um diese Aufgabe zu bewältigen. Durch Auflösen des Versprechens nach der angegebenen Zeit kann eine Verzögerung eingeführt werden:

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

Fazit

Diese Methoden bieten verschiedene Ansätze zur Einführung von Verzögerungen in Puppeteer, je nachdem die spezifischen Anforderungen und Vorlieben des Entwicklers.

Das obige ist der detaillierte Inhalt vonWie kann man Verzögerungen bei Puppeteer einführen: Was sind die besten Lösungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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