I am using Puppeteer to automatically fill a webform. Each time the name in the [input] field should change to a different name from an array.
If I assign a name directly in the page.$eval function (e.g. "Michael") everything works as expected.
puppeteer.launch({ headless: false }).then(async browser => {
const page = await browser.newPage()
await page.goto('https://example.com/webform')
await page.waitFor('input[name=name]');
await page.$eval('input[name=name]', (el) => el.value = "Michael");
But as soon as I try to pass a variable or function (e.g. name_from_array)
var name = ["Michael", "Lisa", "Jason"]
const random = Math.floor(Math.random() * name.length);
var name_from_array = name[random];
puppeteer.launch({ headless: false }).then(async browser => {
const page = await browser.newPage()
await page.goto('https://example.com/webform')
await page.waitFor('input[name=name]');
await page.$eval('input[name=name]', (el) => el.value = name_from_array);
I get an error message saying "UnhandledPromiseRejectionWarning: Error: Evaluation failed: ReferenceError: name_from_array is not defined".
Any idea how to fix this issue?
Thanks a lot!