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.insert_text() 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 i in range(6):
page.keyboard.press("ArrowLeft")
page.keyboard.up("Shift")
page.keyboard.press("Backspace")
await page.keyboard.type("Hello World!")
await page.keyboard.press("ArrowLeft")
await page.keyboard.down("Shift")
for i in range(6):
await page.keyboard.press("ArrowLeft")
await page.keyboard.up("Shift")
await page.keyboard.press("Backspace")
An example of pressing uppercase A
page.keyboard.press("Shift+KeyA")
page.keyboard.press("Shift+A")
await page.keyboard.press("Shift+KeyA")
await page.keyboard.press("Shift+A")
An example to trigger select-all with the keyboard
page.keyboard.press("ControlOrMeta+A")
await page.keyboard.press("ControlOrMeta+A")
Methods downAdded before v1.9 keyboard.down
Dispatches a 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
, ControlOrMeta
. ControlOrMeta
resolves to Control
on Windows and Linux and to Meta
on macOS.
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.
Usage
Arguments
Returns
insert_textAdded before v1.9 keyboard.insert_textDispatches only input
event, does not emit the keydown
, keyup
or keypress
events.
Usage
page.keyboard.insert_text("嗨")
await page.keyboard.insert_text("嗨")
note
Modifier keys DO NOT effect keyboard.insertText
. Holding down Shift
will not type the text in upper case.
Arguments
Returns
pressAdded before v1.9 keyboard.presskey 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
, ControlOrMeta
. ControlOrMeta
resolves to Control
on Windows and Linux and to Meta
on macOS.
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"
, key: "Control++
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.
Usage
page = browser.new_page()
page.goto("https://keycode.info")
page.keyboard.press("a")
page.screenshot(path="a.png")
page.keyboard.press("ArrowLeft")
page.screenshot(path="arrow_left.png")
page.keyboard.press("Shift+O")
page.screenshot(path="o.png")
browser.close()
page = await browser.new_page()
await page.goto("https://keycode.info")
await page.keyboard.press("a")
await page.screenshot(path="a.png")
await page.keyboard.press("ArrowLeft")
await page.screenshot(path="arrow_left.png")
await page.keyboard.press("Shift+O")
await page.screenshot(path="o.png")
await browser.close()
Shortcut for keyboard.down() and keyboard.up().
Arguments
Name of the key to press or a character to generate, such as ArrowLeft
or a
.
Time to wait between keydown
and keyup
in milliseconds. Defaults to 0.
Returns
typeAdded before v1.9 keyboard.typeSends 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().
Usage
page.keyboard.type("Hello")
page.keyboard.type("World", delay=100)
await page.keyboard.type("Hello")
await page.keyboard.type("World", delay=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.
Arguments
A text to type into a focused element.
Time to wait between key presses in milliseconds. Defaults to 0.
Returns
upAdded before v1.9 keyboard.upDispatches a keyup
event.
Usage
Arguments
Returns
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4