首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >pageFunction返回空对象

pageFunction返回空对象
EN

Stack Overflow用户
提问于 2017-10-19 19:24:29
回答 2查看 987关注 0票数 0

我在木偶师中使用了木偶师,我不知道为什么当对象不是空的时候,pageFunction会返回一个空对象。下面是一个代码示例:

代码语言:javascript
运行
复制
const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch({
    headless: false,
    slowMo: 1000
  });
  const page = await browser.newPage();
  await page.goto('https://www.google.com/search?q=news');

  const result1 = await page.$eval('#resultStats', elem => elem.textContent)
  console.log('result1', result1);  // returns 'About 2,890,000,000  results (0.45 seconds)'.  This is expected behavior straight from puppeeteer docs

  const result2 = await page.$eval('#resultStats', elem => elem)
  console.log('result2', result2);  // returns and empty object.  Why?  I would have expected to see a DOM Node Object here

  await browser.close();
})();

如何将整个元素返回到result2中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-21 01:52:25

我不明白pageFunction函数是在Chromium本身中运行的,所以在第二个返回elem => elem的示例中,它实际上是将一个活动的NodeList集合返回给Puppeteer。

但是将一个实时的NodeList集合从铬返回到傀儡是不可能的,因为puppeteer将数据传递到和从Chromium的方式必须通过JSON.stringify / JSON.parse来串行化。当JSON.stringify在一个活动的NodeList上运行时,我相信它会返回一个空对象。

票数 1
EN

Stack Overflow用户

发布于 2017-11-28 09:05:12

嗯,正如您所说的,当您从评估函数返回dom节点时,above.You可以得到function.But中的dom节点,傀儡操作者将处理您returned.So无法获得的形容词数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46837401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档