Estoy tratando de hacer un bucle en la matriz de estudiantes y modificar los elementos html para imprimir una tarjeta para cada estudiante.
Sin embargo, el siguiente código falla en page.evaluate y da el siguiente error:
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(); })();El parámetro page.evaluate() se ejecuta en el contexto del navegador, por lo que debe transferir cualquier variable del contexto de Node.js explícitamente como argumentos y parámetros adicionales:
await page.evaluate((student) => { document.getElementById("name").innerHTML = student.name; document.getElementById("id").innerHTML = student.id; document.getElementById("text").innerHTML = student.text; }, student};