puppeteer page.evaluate querySelectorAll返回空对象

我正在尝试puppeteer,这是一个示例代码,你可以在https://try-puppeteer.appspot.com/上运行它

问题是这段代码正在返回一个空对象的数组

[{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{ },{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}, {},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{} {},{},{},{},{},{},{}]

我有什么错误吗?

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(); 

评估函数返回的值应该是json serializeable。 https://github.com/GoogleChrome/puppeteer/issues/303#issuecomment-322919968

解决的办法是从元素中提取href值并返回。

  await this.page.evaluate((sel) => { let elements = Array.from(document.querySelectorAll(sel)); let links = elements.map(element => { return element.href }) return links; }, sel);