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

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

Linda Hamilton
Linda Hamiltonoriginal
2024-12-16 08:30:15881parcourir

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

Comment transmettre des variables dans une fonction d'évaluation dans Puppeteer

Lorsque vous utilisez Puppeteer pour évaluer une page, il est souvent nécessaire de transmettre des variables dans la fonction d'évaluation pour les utiliser dans le le contexte de la page. Pour y parvenir, il est essentiel de comprendre la méthode correcte de transmission des variables dans la fonction page.evaluate().

Dans le script Puppeteer fourni, les tentatives de transmission de la variable evalVar dans les liens de la fonction d'évaluation échouent, ce qui entraîne dans la variable n'étant pas définie lors de son accès dans la fonction. Cela se produit car les variables ne peuvent pas être transmises directement dans la fonction.

La solution réside dans la transmission de variables comme arguments à la fonction d'évaluation. En ajoutant les modifications suivantes à la fonction links, la variable evalVar sera transmise et accessible dans la fonction :

const links = await page.evaluate((evalVar) => {
  console.log('evalVar:', evalVar); // 2. should be defined now
  ...
}, evalVar); // 1. pass variable as an argument

Notez que plusieurs variables peuvent être transmises en incluant des arguments supplémentaires lors de l'appel de page.evaluate(). Il est important de s'assurer que tous les arguments sont sérialisables au format JSON ou sont des JSHandles d'objets dans le navigateur. En suivant ces directives, vous pouvez transmettre avec succès des variables aux fonctions d'évaluation de Puppeteer et y accéder dans le contexte de la page.

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!

Déclaration:
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