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

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

Patricia Arquette
Patricia ArquetteOriginal
2024-12-10 17:42:11137Durchsuche

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

Variablen in page.evaluate()-Funktionen

Die page.evaluate()-Funktion von Puppeteer ist ein vielseitiges Tool zum Ausführen von JavaScript innerhalb der Ausführung einer Seite Kontext. Die Übergabe von Variablen an diese Funktion kann jedoch schwierig sein.

Undefinierte Variablen

Wenn Sie versuchen, auf eine Variable innerhalb einer page.evaluate()-Funktion zuzugreifen, kann es zu Problemen kommen der Fehler „evalVar: undefiniert“. Dies liegt daran, dass außerhalb der Funktion definierte Variablen innerhalb der Funktion nicht zugänglich sind.

Variablen über Argumente übergeben

Um dieses Problem zu lösen, übergeben Sie die Variable als Argument an die Seite funktionieren wie folgt:

const links = await page.evaluate((evalVar) => {

  console.log(evalVar); // 2. Should be defined now

  ...

}, evalVar); // 1. Pass the variable as an argument

Mehrere Variablen

Sie können auch übergeben mehrere Variablen durch Hinzufügen weiterer Argumente zu page.evaluate():

await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)

Serialisierbare Parameter

Die Argumente, die Sie übergeben, müssen entweder für JSON serialisierbar sein oder JSHandles von sein In-Browser-Objekte. Einzelheiten finden Sie in der offiziellen Puppeteer-Dokumentation: https://pptr.dev/#?show=api-pageevaluatepagefunction-args.

Das obige ist der detaillierte Inhalt vonWie kann ich Variablen an die Funktion „page.evaluate()' von Puppeteer übergeben?. 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