Pressing enter in puppeteer doesn't seem to have any effect. However, when I press other keys, it does what it should. This works:
await page.press('ArrowLeft');
This doesn't:
await page.press('Enter');
This is how the input looks like:
Any ideas?
EDIT: I've also tried page.keyboard.down & page.keyboard.up to be sure.
await page.type(String.fromCharCode(13));
Using this site I noticed that page.type
dispatches beforeinput
and input
events, but page.press
doesn't. This is probably a bug, but fortunately sending the enter keycode (13) seems to work, so we can work around it for now.
I've used page.keyboard.press('Enter');
usually :) Works for me.
Have a look at the documentation here. I think you should use .keyboard
before .press
for it to work properly.
page.keyboard.press():
You can use page.keyboard.press()
to simulate pressing the enter key. Any of the following options should work:
await page.keyboard.press( 'Enter' ); // Enter Key await page.keyboard.press( 'NumpadEnter' ); // Numeric Keypad Enter Key await page.keyboard.press( '\n' ); // Shortcut for Enter Key await page.keyboard.press( '\r' ); // Shortcut for Enter Key
elementHandle.press():
Additionally, you can use use a combination of page.$()
and elementHandle.press()
to focus on an element before pressing enter:
await (await page.$( 'input[type="text"]' )).press( 'Enter' ); // Enter Key await (await page.$( 'input[type="text"]' )).press( 'NumpadEnter' ); // Numeric Keypad Enter Key await (await page.$( 'input[type="text"]' )).press( '\n' ); // Shortcut for Enter Key await (await page.$( 'input[type="text"]' )).press( '\r' ); // Shortcut for Enter Key
page.type():
Furthermore, you can use page.type()
:
await page.type( String.fromCharCode( 13 ) );
page.keyboard.type():
Likewise, you can use page.keyboard.type()
:
await page.keyboard.type( String.fromCharCode( 13 ) );
page.keyboard.sendCharacter():
Another alternative method would be to use the page.keyboard.sendCharacter()
method:
await page.keyboard.sendCharacter( String.fromCharCode( 13 ) );
page.keyboard.down() / page.keyboard.up():
You can also use a combination of page.keyboard.down()
and page.keyboard.up()
:
await page.keyboard.down( 'Enter' ); await page.keyboard.up( 'Enter' ); // Enter Key await page.keyboard.down( 'NumpadEnter' ); await page.keyboard.up( 'NumpadEnter' ); // Shortcut for Enter Key await page.keyboard.down( '\n' ); await page.keyboard.up( '\n' ); // Shortcut for Enter Key await page.keyboard.down( '\r' ); await page.keyboard.up( '\r' ); // Shortcut for Enter Key