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.