Steuerung des Ausführungsflusses in Puppeteer: Implementierung von Verzögerungen und Pausen
In Puppeteer besteht häufig die Notwendigkeit, die Ausführung anzuhalten oder zu verzögern, bevor mit der nächsten Ausführung fortgefahren wird Codezeilen. Dies ist für die Synchronisierung mit Webseiten oder die effektive Simulation von Benutzerinteraktionen unerlässlich.
Ein gängiger Ansatz ist die Verwendung der setTimeout-Funktion von JavaScript, die einen Rückruf und ein Zeitintervall als Parameter akzeptiert. Wie im bereitgestellten Codeausschnitt gezeigt wird, erzielt diese Methode jedoch im Puppeteer-Kontext nicht das beabsichtigte Ergebnis.
Eine Lösung besteht darin, Promise-basierte Ansätze zu nutzen. Eine Möglichkeit besteht darin, eine Verzögerungsfunktion zu definieren:
function delay(time) { return new Promise(function(resolve) { setTimeout(resolve, time) }); }
Durch Aufrufen dieser Funktion wird eine Verzögerung der angegebenen Dauer in den Ausführungsfluss eingeführt:
console.log('before waiting'); await delay(4000); console.log('after waiting');
Puppeteer stellt auch eine integrierte Verzögerungsfunktion bereit -in waitForTimeout-Funktion, die eine direkte Kontrolle über die Pausendauer bietet:
await page.waitForTimeout(4000)
Wenn außerdem weiterhin der Wunsch besteht, page.evaluate zum Einführen von Verzögerungen zu verwenden, ist es wichtig sicherzustellen, dass die Rückruffunktion nach dem ordnungsgemäß aufgelöst wird gewünschtes Intervall:
await page.evaluate(async() => { await new Promise(function(resolve) { setTimeout(resolve, 1000) }); });
Durch die Implementierung dieser Verzögerungstechniken können Sie den Ausführungsfluss in Puppeteer effektiv steuern und so eine ordnungsgemäße Synchronisierung und realistische Interaktion mit Webseiten sicherstellen.
Das obige ist der detaillierte Inhalt vonWie führt man Verzögerungen und Pausen im Ausführungsablauf von Puppeteer ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!