J'essaie marionnettiste, voici un exemple de code sur lequel vous pouvez l'exécuter https://try-puppeteer.appspot.com/
le problème est que ce code retourne un tableau d'objets vides
[{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, { }, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} , {}, {}, {}, {}, {}, {}, {}]
Suis-je en train de faire une erreur?
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://reddit.com/');
let list = await page.evaluate(() => {
return Promise.resolve(Array.from(document.querySelectorAll('.title')));
});
console.log(JSON.stringify(list))
await browser.close();
Les valeurs renvoyées par la fonction d'évaluation doivent être json sérialisables. https://github.com/GoogleChrome/puppeteer/issues/303#issuecomment-322919968
la solution est d'extraire les valeurs href des éléments et de les renvoyer.
await this.page.evaluate((sel) => {
let elements = Array.from(document.querySelectorAll(sel));
let links = elements.map(element => {
return element.href
})
return links;
}, sel);