2

我想在评估()中运行一个函数,我将它作为参数传递,但我得到'func is not a function',我错过了什么?

木偶版:10.2

平台/操作系统版本:Windows 10、Node 8.2.1

var func = function() {
   console.log("xxxxx");
};

var response = await page.evaluate( (func) => {
   func(); //func is not a function
}, func);
4

2 回答 2

6

您可以使用page.exposeFunction(name, puppeteerFunction)

await page.exposeFunction("add", (a, b) => a + b);
const response = await page.evaluate(() => {
   return window.add(2, 2);
});
于 2018-01-14T23:28:08.487 回答
0

如果我理解正确,puppeteer 必须最终将评估函数中的代码编组为字符串并将其注入到页面上下文中。您不能跨该边界传递函数引用或任何不可序列化的内容。

于 2017-09-13T16:02:49.890 回答