Heim >Web-Frontend >js-Tutorial >Wie kann man Verzögerungen bei Puppeteer einführen: Was sind die besten Lösungen?
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!