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);

10-06 04:07