public interface Keyboard
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.insertText() 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:
page.keyboard().type("Hello World!");
page.keyboard().press("ArrowLeft");
page.keyboard().down("Shift");
for (int i = 0; i < " World".length(); i++)
page.keyboard().press("ArrowLeft");
page.keyboard().up("Shift");
page.keyboard().press("Backspace");
// Result text will end up saying "Hello!"
An example of pressing uppercase A
page.keyboard().press("Shift+KeyA");
// or
page.keyboard().press("Shift+A");
An example to trigger select-all with the keyboard
// on Windows and Linux
page.keyboard().press("Control+A");
// on macOS
page.keyboard().press("Meta+A");
| Modifier and Type | Interface and Description |
|---|---|
static class |
Keyboard.PressOptions |
static class |
Keyboard.TypeOptions |
| Modifier and Type | Method and Description |
|---|---|
void |
down(String key)
Dispatches a
keydown event. |
void |
insertText(String text)
Dispatches only
input event, does not emit the keydown, keyup or keypress events. |
default void |
press(String key)
key can specify the intended keyboardEvent.key value or a single
character to generate the text for. |
void |
press(String key,
Keyboard.PressOptions options)
key can specify the intended keyboardEvent.key value or a single
character to generate the text for. |
default void |
type(String text)
Sends a
keydown, keypress/input, and keyup event for each character in the text. |
void |
type(String text,
Keyboard.TypeOptions options)
Sends a
keydown, keypress/input, and keyup event for each character in the text. |
void |
up(String key)
Dispatches a
keyup event. |
void down(String key)
keydown event.
key can specify the intended keyboardEvent.key value or a single
character to generate the text for. A superset of the key values can be found here. Examples of the keys are:
F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal, Backslash, Backspace, Tab,
Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp, etc.
Following modification shortcuts are also supported: Shift, Control, Alt, Meta, ShiftLeft.
Holding down Shift will type the text that corresponds to the key in the upper case.
If key is a single character, it is case-sensitive, so the values a and A will generate different respective
texts.
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 the key to press or a character to generate, such as ArrowLeft or a.void insertText(String text)
input event, does not emit the keydown, keyup or keypress events.
page.keyboard().insertText("嗨");
NOTE: Modifier keys DO NOT effect keyboard.insertText. Holding down Shift will not type the text in upper case.
text - Sets input to the specified text value.default void press(String key)
key can specify the intended keyboardEvent.key value or a single
character to generate the text for. A superset of the key values can be found here. Examples of the keys are:
F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal, Backslash, Backspace, Tab,
Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp, etc.
Following modification shortcuts are also supported: Shift, Control, Alt, Meta, ShiftLeft.
Holding down Shift will type the text that corresponds to the key in the upper case.
If key is a single character, it is case-sensitive, so the values a and A will generate different respective
texts.
Shortcuts such as key: "Control+o" or key: "Control+Shift+T" are supported as well. When specified with the
modifier, modifier is pressed and being held while the subsequent key is being pressed.
Page page = browser.newPage();
page.navigate("https://keycode.info");
page.keyboard().press("A");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("A.png"));
page.keyboard().press("ArrowLeft");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("ArrowLeft.png")));
page.keyboard().press("Shift+O");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("O.png")));
browser.close();
Shortcut for Keyboard.down() and Keyboard.up().
key - Name of the key to press or a character to generate, such as ArrowLeft or a.void press(String key, Keyboard.PressOptions options)
key can specify the intended keyboardEvent.key value or a single
character to generate the text for. A superset of the key values can be found here. Examples of the keys are:
F1 - F12, Digit0- Digit9, KeyA- KeyZ, Backquote, Minus, Equal, Backslash, Backspace, Tab,
Delete, Escape, ArrowDown, End, Enter, Home, Insert, PageDown, PageUp, ArrowRight, ArrowUp, etc.
Following modification shortcuts are also supported: Shift, Control, Alt, Meta, ShiftLeft.
Holding down Shift will type the text that corresponds to the key in the upper case.
If key is a single character, it is case-sensitive, so the values a and A will generate different respective
texts.
Shortcuts such as key: "Control+o" or key: "Control+Shift+T" are supported as well. When specified with the
modifier, modifier is pressed and being held while the subsequent key is being pressed.
Page page = browser.newPage();
page.navigate("https://keycode.info");
page.keyboard().press("A");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("A.png"));
page.keyboard().press("ArrowLeft");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("ArrowLeft.png")));
page.keyboard().press("Shift+O");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("O.png")));
browser.close();
Shortcut for Keyboard.down() and Keyboard.up().
key - Name of the key to press or a character to generate, such as ArrowLeft or a.default void type(String text)
keydown, keypress/input, and keyup event for each character in the text.
To press a special key, like Control or ArrowDown, use Keyboard.press().
// Types instantly
page.keyboard().type("Hello");
// Types slower, like a user
page.keyboard().type("World", new Keyboard.TypeOptions().setDelay(100));
NOTE: Modifier keys DO NOT effect keyboard.type. Holding down Shift will not type the text in upper case.
NOTE: For characters that are not on a US keyboard, only an input event will be sent.
text - A text to type into a focused element.void type(String text, Keyboard.TypeOptions options)
keydown, keypress/input, and keyup event for each character in the text.
To press a special key, like Control or ArrowDown, use Keyboard.press().
// Types instantly
page.keyboard().type("Hello");
// Types slower, like a user
page.keyboard().type("World", new Keyboard.TypeOptions().setDelay(100));
NOTE: Modifier keys DO NOT effect keyboard.type. Holding down Shift will not type the text in upper case.
NOTE: For characters that are not on a US keyboard, only an input event will be sent.
text - A text to type into a focused element.void up(String key)
keyup event.key - Name of the key to press or a character to generate, such as ArrowLeft or a.Copyright © 2021. All rights reserved.