【问题标题】:How can we pass a reference from Node into a Puppeteer page?我们如何将 Node 的引用传递到 Puppeteer 页面?
【发布时间】:2018-08-06 04:35:24
【问题描述】:

有没有办法在 Puppeteer 中传递对页面的引用?还是仅限于可序列化的数据?

例如,我想通过page.exposeFunction('require', ...) 开始制作我自己的 Electron,但如果我们只能返回可序列化的数据,那将无法实现。

【问题讨论】:

  • 我不确定我是否跟随。 exposeFunction 定义了一个将在 Node.JS 上下文中执行的函数;您是在询问将该函数的值返回给浏览器吗?
  • @Aankhen f.e.我想返回一个函数实例或某个其他类的实例,而不进行序列化。

标签: puppeteer google-chrome-headless


【解决方案1】:

Puppeteer 提供了一个 API 来通过 DevTools 协议控制 Chromium,这意味着 Page class 使用了 Chrome DevTools 协议中的 Page Domain

从Page域得到的返回值都是可序列化的。

因此,您似乎仅限于可序列化数据。

【讨论】:

  • 不用序列化就好了。有办法吗?
  • 很遗憾没有。正如答案所述,来自不同上下文(Node.JS 与浏览器)的事物必须被序列化。
猜你喜欢
  • 2015-05-12
  • 2012-12-04
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 2019-07-10
  • 2011-07-24
  • 1970-01-01
相关资源
最近更新 更多