Options
All
  • Public
  • Public/Protected
  • All
Menu

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.

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.

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

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

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

await page.keyboard.press('Backspace');
// Result text will end up saying 'Hello!'

An example of pressing A

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

Hierarchy

  • _PlatformObjBinding
    • Keyboard

Index

Methods

down

  • down(key: puppeteer.KeyInput, options: { text: string }): Promise<void>
  • Dispatches a keydown event.

    If key is a single character and no modifier keys besides Shift are being held down, a keypress/input event will also generated. The text option can be specified to force an input event to be generated.

    If key is a modifier key, Shift, Meta, Control, or Alt, subsequent key presses will be sent with that modifier active. To release the modifier key, use keyboard.up.

    After the key is pressed once, subsequent calls to keyboard.down will have repeat set to true. To release the key, use keyboard.up.

    NOTE Modifier keys DO influence keyboard.down. Holding down Shift will type the text in upper case.

    • key Name of key to press, such as ArrowLeft. See USKeyboardLayout for a list of all key names.

    • options

      • text <string> If specified, generates an input event with this text.
    returns:

    <Promise> that resolves when complete

    Parameters

    • key: puppeteer.KeyInput
    • options: { text: string }
      • text: string

    Returns Promise<void>

press

  • press(key: puppeteer.KeyInput, options: { delay?: number; text?: string; times?: number }): Promise<void>
    • key <string> Name of key to press, such as ArrowLeft. See USKeyboardLayout for a list of all key names.
    • options <Object>
    • delay <number> Time to wait between keydown and keyup in milliseconds. Defaults to 0.
    • times <number> how many times to press the key, with a delay of delay between presses
    • returns: <Promise>

    If key is a single character and no modifier keys besides Shift are being held down, a keypress/input event will also generated. The text option can be specified to force an input event to be generated.

    NOTE Modifier keys DO effect keyboard.press. Holding down Shift will type the text in upper case.

    Shortcut for keyboard.down and keyboard.up.

    Parameters

    • key: puppeteer.KeyInput
    • options: { delay?: number; text?: string; times?: number }
      • Optional delay?: number
      • Optional text?: string
      • Optional times?: number

    Returns Promise<void>

sendCharacter

  • sendCharacter(char: string): Promise<void>
    • char <string> Character to send into the page.
    • returns: <Promise>

    Dispatches a keypress and input event. This does not send a keydown or keyup event.

    page.keyboard.sendCharacter('嗨');

    NOTE Modifier keys DO NOT effect keyboard.sendCharacter. Holding down Shift will not type the text in upper case.

    Parameters

    • char: string

    Returns Promise<void>

type

  • type(text: string, options: { delay: number }): Promise<void>
    • text <string> A text to type into a focused element.
    • options <Object>
    • delay <number> Time to wait between key presses in milliseconds. Defaults to 0.
    • returns: <Promise>

    Sends a keydown, keypress/input, and keyup event for each character in the text.

    To press a special key, like Control or ArrowDown, use keyboard.press.

    page.keyboard.type('Hello'); // Types instantly
    page.keyboard.type('World', {delay: 100}); // Types slower, like a user

    NOTE Modifier keys DO NOT effect keyboard.type. Holding down Shift will not type the text in upper case.

    Parameters

    • text: string
    • options: { delay: number }
      • delay: number

    Returns Promise<void>

up

  • up(key: puppeteer.KeyInput): Promise<void>
    • key <string> Name of key to release, such as ArrowLeft. See USKeyboardLayout for a list of all key names.
    • returns: <Promise>

    Dispatches a keyup event.

    Parameters

    • key: puppeteer.KeyInput

    Returns Promise<void>