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?