page.evaluate
出现多个错误,我不明白为什么。
ReferenceError:未定义alljobs
和
评估失败:ReferenceError:multiplePositionsPerJob不是 定义
alljobs
是我尝试将对象推送到的数组。
multiplePositionsPerJob
是我在文件中用require
引用的功能。
var alljobs = [];
await page.evaluate(() => {
Array.from(
document.querySelectorAll(
"section"
)
).map(job => {
console.log(job);
if (job.querySelector("ul li")) {
multiplePositionsPerJob(job).forEach(position => {
alljobs.push(position);
});
}
});
}, alljobs);
答案 0 :(得分:1)
要传递像数组或函数这样的参数,您的代码应该像这样。
var alljobs = [];
var allFuncts = require("./functionsfile");
var multiplePositionsPerJob = allFuncts.multiplePositionsPerJob;
await page.evaluate( (alljobs, multiplePositionsPerJob) => {
Array.from( document.querySelectorAll('section') ).map(job => {
console.log(job);
if ( job.querySelector("ul li") ) {
multiplePositionsPerJob(job).forEach(position => {
alljobs.push(position);
});
}
});
}, alljobs, multiplePositionsPerJob);