In Puppeteer können Sie mit der page.evaluate()-Funktion benutzerdefiniertes JavaScript auf einer Webseite innerhalb der ausführen Browser. Es ist jedoch nicht sofort klar, wie Variablen von Node an die page.evaluate()-Funktion zur Verwendung im ausgewerteten Code übergeben werden.
Beim Versuch, eine Variable zu übergeben, besteht der typische Ansatz darin, die Pfeilfunktionssyntax zu verwenden :
const links = await page.evaluate((evalVar) => {...});
Wenn Sie jedoch auf den Fehler stoßen, dass evalVar in der Pfeilfunktion undefiniert ist, bedeutet dies, dass die Variable nicht an die Funktion übergeben wird korrekt.
Um dieses Problem zu beheben, müssen Variablen als Argumente an die Seitenfunktion übergeben werden. Die angepasste Syntax lautet:
const links = await page.evaluate((evalVar) => {...}, evalVar); // 1. pass variable as an argument
Hier wird die Variable evalVar als zusätzliches Argument an die Pfeilfunktion übergeben, wodurch sie im ausgewerteten Code zugänglich gemacht wird.
Diese Technik eignet sich für die Übergabe mehrerer auch Variablen. Fügen Sie einfach weitere Argumente zum Funktionsaufruf page.evaluate() hinzu:
await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)
Es ist wichtig sicherzustellen, dass die übergebenen Argumente entweder als JSON serialisierbar sind oder JSHandles von In-Browser-Objekten sind, da diese unterstützt werden Typen zum Übergeben von Variablen an page.evaluate().
Das obige ist der detaillierte Inhalt vonWie übergebe ich Variablen korrekt an die Funktion „page.evaluate()' von Puppeteer?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!