作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 page.evaluate
时遇到多个错误,但我不明白为什么。
ReferenceError: alljobs is not defined
和
Evaluation failed: ReferenceError: multiplePositionsPerJob is not defined
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);
关于javascript - 如何将数组和函数传递给 Page.evaluate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59367563/
我是一名优秀的程序员,十分优秀!