【发布时间】:2018-06-20 19:16:59
【问题描述】:
我将Puppeteer 用于无头 Chrome。我希望评估页面内的一个函数,该函数使用其他函数的一部分,在其他地方动态定义。
下面的代码是一个最小的例子/证明。实际上functionToInject() 和otherFunctionToInject() 更复杂,需要页面DOM。
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto(someURL);
var functionToInject = function(){
return 1+1;
}
var otherFunctionToInject = function(input){
return 6
}
var data = await page.evaluate(function(functionToInject, otherFunctionToInject){
console.log('woo I run inside a browser')
return functionToInject() + otherFunctionToInject();
});
return data
当我运行代码时,我得到:
错误:评估失败:TypeError:functionToInject 不是函数
据我所知:functionToInject 没有被传递到页面的 JS 上下文中。但是如何将它传递到页面的 JS 上下文中呢?
【问题讨论】:
标签: javascript headless-browser puppeteer google-chrome-headless