Heim >Web-Frontend >js-Tutorial >Wie übergebe ich Variablen korrekt an die Funktion „page.evaluate()' von Puppeteer?

Wie übergebe ich Variablen korrekt an die Funktion „page.evaluate()' von Puppeteer?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-27 20:22:10264Durchsuche

How to Correctly Pass Variables to Puppeteer's `page.evaluate()` Function?

Übergabe von Variablen an die page.evaluate()-Funktion von Puppeteer

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!

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