Javascript 自定义事件不是一个函数,木偶演员
我无法使用Puppeter执行自定义事件 这就是我的代码看起来的样子,但它似乎不起作用Javascript 自定义事件不是一个函数,木偶演员,javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我无法使用Puppeter执行自定义事件 这就是我的代码看起来的样子,但它似乎不起作用 const browser = await puppeteer.launch({ defaultViewport: { width: 1920, height: 1080 }, headless: false, }); const page = await browser.newPage(); await page.exposeFunction('getInfo', (even
const browser = await puppeteer.launch({
defaultViewport: { width: 1920, height: 1080 },
headless: false,
});
const page = await browser.newPage();
await page.exposeFunction('getInfo', (event) => {
console.log('getInfo');
});
await page.goto('url');
await page.evaluate(() => {
window.document.getInfo(); // TypeError: window.document.getInfo is not a function
});
我做错了什么?文档上说: 该方法在页面的窗口对象上添加一个名为name的函数。调用时,该函数执行node.js中的puppeterfunction,并返回解析为puppeterfunction返回值的承诺 关键部分是“在页面的窗口对象上”。您正试图在
window.document
对象中查找函数
此代码将修复您的问题:
等待页面。评估(()=>{
getInfo();
});
还要注意,任何此类函数都会返回一个承诺,因此您可能需要执行以下操作:
wait page.evaluate(异步()=>{
等待window.getInfo();
});
如果您的函数应该返回您希望以后在page.evaluate()中使用的内容,例如,回调函数
看