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!