Maison > interface Web > js tutoriel > Comment transmettre correctement des variables à la fonction « page.evaluate() » de Puppeteer ?

Comment transmettre correctement des variables à la fonction « page.evaluate() » de Puppeteer ?

Mary-Kate Olsen
Libérer: 2024-12-27 20:22:10
original
265 Les gens l'ont consulté

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

Passer des variables dans la fonction page.evaluate() de Puppeteer

Dans Puppeteer, la fonction page.evaluate() vous permet d'exécuter du JavaScript personnalisé sur une page Web dans le navigateur. Cependant, il n'est pas immédiatement clair comment transmettre des variables de Node à la fonction page.evaluate() pour les utiliser dans le code évalué.

Lorsque vous essayez de transmettre une variable, l'approche typique consiste à utiliser la syntaxe de la fonction flèche. :

const links = await page.evaluate((evalVar) => {...});
Copier après la connexion

Cependant, si vous rencontrez l'erreur selon laquelle evalVar n'est pas défini dans la fonction flèche, cela signifie que la variable n'est pas transmise à la fonction. correctement.

Pour résoudre ce problème, les variables doivent être transmises comme arguments à la fonction page. La syntaxe ajustée est :

const links = await page.evaluate((evalVar) => {...}, evalVar);  // 1. pass variable as an argument
Copier après la connexion

Ici, la variable evalVar est passée comme argument supplémentaire à la fonction flèche, la rendant accessible dans le code évalué.

Cette technique fonctionne pour passer plusieurs variables également. Ajoutez simplement plus d'arguments à l'appel de fonction page.evaluate() :

await page.evaluate((a, b, c) => { console.log(a, b, c) }, a, b, c)
Copier après la connexion

Il est important de s'assurer que les arguments transmis sont soit sérialisables en JSON, soit des JSHandles d'objets dans le navigateur, car ce sont les arguments pris en charge. types pour transmettre des variables à page.evaluate().

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal