Puppeteer cannot write in a specific input field

Viewed 164

I tried to write in the search field (input) with Puppeteer but the program ends without writing anything in that field. Here the code:

const browser = await puppeteer.launch({
    headless: false,
    slowMo: 100, // slow down by 250ms
});
const page = await browser.newPage();
await page.goto('https://cb01.tattoo/');
await page.waitForSelector('.form-control.mb-2.mr-sm-2.mb-sm-0');
console.log('passed');
await page.type('.form-control.mb-2.mr-sm-2.mb-sm-0', 'hello');
//await page.$eval('.form-control.mb-2.mr-sm-2.mb-sm-0', el => el.value = 'hello');
console.log('end');
//await browser.close();

I also tried with commented code but it doesn't work anyway. Ty for help.

1 Answers

The input element is inside hidden element. You need to unhide the parent element first:

const browser = await puppeteer.launch({
    headless: false,
    slowMo: 100, // slow down by 250ms
});
const page = await browser.newPage();
await page.goto('https://cb01.tattoo/');
await page.waitForSelector('.form-control.mb-2.mr-sm-2.mb-sm-0');
console.log('passed');

await page.$eval('.mobileShow', el => el.style.display = 'block'); // Unhide parent.

await page.type('.form-control.mb-2.mr-sm-2.mb-sm-0', 'hello');
console.log('end');
Related