无法使用人偶修改元素

Unable to modify element with puppeteer

我正在尝试循环学生数组并修改 html 元素以便为每个学生打印一张卡片。

但是下面的代码在 page.evaluate 处失败并给出以下错误:

Evaluation failed: ReferenceError: student is not defined
(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(`file://${__dirname}/card/card.html`);

  console.log(students);

  for (const student of students) {
    console.log(student.name);
    await page.evaluate(() => {
      document.getElementById("name").innerHTML = student.name;
      document.getElementById("id").innerHTML = student.id;
      document.getElementById("text").innerHTML = student.text;
    });

    await page.screenshot({ path: `example-${student.id}.png` });
  }

  await browser.close();
})();

page.evaluate() 参数在浏览器上下文中执行,因此您需要从 Node.js 上下文显式传输任何变量作为附加参数和参数:

await page.evaluate((student) => {
  document.getElementById("name").innerHTML = student.name;
  document.getElementById("id").innerHTML = student.id;
  document.getElementById("text").innerHTML = student.text;
}, student};