Это действительно для меня. Я не могу получить доступ к глобальной переменной внутри $$ eval(), а также не обращаться к другим модулям.
const util = require('util');
GlobalFlag=true;
.......
await page.$$eval(selector, (e) => {
console.log(e);
GlobalFlag=false;
console.log(util.inspect(e));
});
дает мне ошибку: Ошибка оценки: ReferenceError: util не определен
$eval
оценивает функцию в контексте на стороне клиента. Он является строковым и вызывается с помощью eval
. У него нет доступа к Node GlobalFlag
потому что он не существует в глобальной области видимости браузера.
$eval
и $$eval
поддерживают дополнительные аргументы, которые будут переданы оцениваемой функции в случае, если там нужно прочитать переменную. Для записи в переменную значение должно быть возвращено из функции и назначено в контексте узла.
GlobalFlag = await page.$$eval(selector, (e) => {
console.log(JSON.stringify(e, null, 2));
return false;
});
util
потому что это пакет Node. Скорее всего, это не нужно. Также неясно, для чего служит GlobalFlag в вашем случае.