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);
最佳答案
要传递像数组或函数这样的参数,您的代码应该像这样。
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);