Whenever I try to pass a function, like this:
var myFunc = function() { console.log(\"lol\"); };
await page.evaluate(func => {
func();
return true;
},
The error is thrown because you execute func(); but func is not a function. I update my answer to answer your updated question:
Option 1: execute your function in page context:
var myFunc = function(element) { element.innerHTML = "baz" };
await page.evaluate(func => {
var foo = document.querySelector('.bar');
myFunc(foo);
return true;
});
Option 2: pass element handle as arguments
const myFunc = (element) => {
innerHTML = "baz";
return true;
}
const barHandle = await page.$('.bar');
const result = await page.evaluate(myFunc, barHandle);
await barHandle.dispose();
`