J'essaie de passer une variable dans une fonction page.evaluate()
dans Puppeteer, mais lorsque j'utilise l'exemple très simplifié suivant, la variable evalVar
est indéfinie.Puppeteer: pass variable dans .evaluate()
Je suis nouveau sur Puppeteer et ne trouve aucun exemple sur lequel construire, donc j'ai besoin d'aide pour passer cette variable dans la fonction page.evaluate()
afin que je puisse l'utiliser à l'intérieur.
const puppeteer = require('puppeteer');
(async() => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
const evalVar = 'WHUT??';
try {
await page.goto('https://www.google.com.au');
await page.waitForSelector('#fbar');
const links = await page.evaluate((evalVar) => {
console.log('evalVar:', evalVar); // appears undefined
const urls = [];
hrefs = document.querySelectorAll('#fbar #fsl a');
hrefs.forEach(function(el) {
urls.push(el.href);
});
return urls;
})
console.log('links:', links);
} catch (err) {
console.log('ERR:', err.message);
} finally {
// browser.close();
}
})();
Merci, c'est fait :) Beaucoup apprécié! –
Bonjour, comment passeriez-vous plusieurs variables? – chitzui
Aussi, je ne suis pas vraiment capable de passer une fonction: var myFunction = function() {console.log ("hello")}; en attente de page.evaluate (func => func(), myFunction); me donne: 'L'évaluation a échoué: TypeError: func n'est pas une fonction' .. Pourquoi? – chitzui