Я думаю, что нужно помнить о некоторых понятиях:
exposeFunction
не будет выполнять эту функцию.Он зарегистрирует эту функцию, чтобы вы могли затем вызвать findPath(foo)
в контексте браузера .Код, который вы запускаете внутри предоставляемой функции , будет выполняться в контексте вашего приложения .Таким образом, eval
не будет работать там.
evaluate
должен выполнить эту работу за вас:
console.log(await page.evaluate(() => {
return eval('document.title');
}));
С evaluate
вы должны иметь в виду, что код будетвыполняться в контексте браузера.Таким образом, вы не будете читать журнал консоли на стороне приложения (если только вы не прослушиваете событие журнала).