google-chrome-devtools headless-browser javascript node.js puppeteer

Puppeteer Button Press

According to, you can simulate the pressing of a keyboard button with Puppeteer.

Here’s what I do:

// First, click the search button
await'#outer-container > nav > span.right > > span > form > input[type="text"]');
// Focus on the input field
await page.focus('#outer-container > nav > span.right > > span > form > input[type="text"]');
// Enter some text into the input field
await page.type("Bla Bla");
// Press Enter to search -> this doesn't work!

The pressing of the button doesn’t produce anything. It’s basically ignored.

How can I simulate the Enter key to submit the form?

I’ve figured it out finally. I found inside that same form an anchor element whose type was submit. I then clicked on it and the form was submitted.

Here’s the code I’ve used:

const form = await page.$('a#topbar-search');
await form.evaluate( form => );

You can also use the $eval method instead of evaluate:

await page.$eval( 'a#topbar-search', form => );