无法使用人偶修改元素
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};
我正在尝试循环学生数组并修改 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};