You cannot pass a function directly into page.evaluate(), but you can call another special method (page.exposeFunction), which expose your function as a global function (also available in as an attribute of your page window object), so you can call it when you are inside page.evaluate():
var myFunc = function() { console.log("lol"); };
await page.exposeFunction("myFunc", myFunc);
await page.evaluate(async () => {
await myFunc();
return true;
});
Just remember that page.exposeFunction() will make your function return a Promise, then, you need to use async and await. This happens because your function will not be running inside your browser, but inside your nodejs application.
- exposeFunction() does not work after goto()
- Why can’t I access ‘window’ in an exposeFunction() function with Puppeteer?
- How to use evaluateOnNewDocument and exposeFunction?
- exposeFunction remains in memory?
- Puppeteer: pass variable in .evaluate()
- Puppeteer evaluate function
- allow to pass a parameterized funciton as a string to page.evaluate
- Functions bound with page.exposeFunction() produce unhandled promise rejections
- exposed function queryseldtcor not working in puppeteer
- How can I dynamically inject functions to evaluate using Puppeteer?