Skip to main content
Version: Next

Keyboard class

Keyboard provides an api for managing a virtual keyboard. The high level api is Keyboard.type(), which takes raw characters and generates proper keydown, keypress/input, and keyup events on your page.


export declare abstract class Keyboard


For finer control, you can use Keyboard.down(), Keyboard.up(), and Keyboard.sendCharacter() to manually fire events as if they were generated from a real keyboard.

On macOS, keyboard shortcuts like ⌘ A -> Select All do not work. See #1313.

The constructor for this class is marked as internal. Third-party code should not call the constructor directly or create subclasses that extend the Keyboard class.

Example 1

An example of holding down Shift in order to select and delete some text:

await page.keyboard.type('Hello World!');

await page.keyboard.down('Shift');
for (let i = 0; i < ' World'.length; i++)
await page.keyboard.up('Shift');

// Result text will end up saying 'Hello!'

Example 2

An example of pressing A

await page.keyboard.down('Shift');
await page.keyboard.up('Shift');


down(key, options)Dispatches a keydown event.
press(key, options)Shortcut for Keyboard.down() and Keyboard.up().
sendCharacter(char)Dispatches a keypress and input event. This does not send a keydown or keyup event.
type(text, options)Sends a keydown, keypress/input, and keyup event for each character in the text.
up(key)Dispatches a keyup event.