Class: Playwright::Keyboard
- Inherits:
-
PlaywrightApi
- Object
- PlaywrightApi
- Playwright::Keyboard
- Defined in:
- lib/playwright_api/keyboard.rb
Overview
Keyboard provides an api for managing a virtual keyboard. The high level api is [method: Keyboard.type], which takes
raw characters and generates proper keydown, keypress/input, and keyup events on your page.
For finer control, you can use [method: Keyboard.down], [method: Keyboard.up], and [method: 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 i in range(6):
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 mac_os
page.keyboard.press("Meta+A")
Instance Method Summary collapse
-
#down(key) ⇒ Object
Dispatches a
keydownevent. -
#insert_text(text) ⇒ Object
Dispatches only
inputevent, does not emit thekeydown,keyuporkeypressevents. -
#press(key, delay: nil) ⇒ Object
keycan specify the intended keyboardEvent.key value or a single character to generate the text for. -
#type(text, delay: nil) ⇒ Object
Sends a
keydown,keypress/input, andkeyupevent for each character in the text. -
#up(key) ⇒ Object
Dispatches a
keyupevent.
Methods inherited from PlaywrightApi
Constructor Details
This class inherits a constructor from Playwright::PlaywrightApi
Instance Method Details
#down(key) ⇒ Object
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.
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 [method: Keyboard.up].
After the key is pressed once, subsequent calls to [method: Keyboard.down] will have
repeat set to true. To release the key, use
[method: Keyboard.up].
NOTE: Modifier keys DO influence
keyboard.down. Holding downShiftwill type the text in upper case.
63 64 65 |
# File 'lib/playwright_api/keyboard.rb', line 63 def down(key) wrap_impl(@impl.down(unwrap_impl(key))) end |
#insert_text(text) ⇒ Object
Dispatches only input event, does not emit the keydown, keyup or keypress events.
page.keyboard.insert_text("嗨")
NOTE: Modifier keys DO NOT effect
keyboard.insertText. Holding downShiftwill not type the text in upper case.
74 75 76 |
# File 'lib/playwright_api/keyboard.rb', line 74 def insert_text(text) wrap_impl(@impl.insert_text(unwrap_impl(text))) end |
#press(key, delay: nil) ⇒ Object
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 = 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()
Shortcut for [method: Keyboard.down] and [method: Keyboard.up].
108 109 110 |
# File 'lib/playwright_api/keyboard.rb', line 108 def press(key, delay: nil) wrap_impl(@impl.press(unwrap_impl(key), delay: unwrap_impl(delay))) end |
#type(text, delay: nil) ⇒ Object
Sends a keydown, keypress/input, and keyup event for each character in the text.
To press a special key, like Control or ArrowDown, use [method: 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 downShiftwill not type the text in upper case. NOTE: For characters that are not on a US keyboard, only aninputevent will be sent.
123 124 125 |
# File 'lib/playwright_api/keyboard.rb', line 123 def type(text, delay: nil) wrap_impl(@impl.type(unwrap_impl(text), delay: unwrap_impl(delay))) end |
#up(key) ⇒ Object
Dispatches a keyup event.
128 129 130 |
# File 'lib/playwright_api/keyboard.rb', line 128 def up(key) wrap_impl(@impl.up(unwrap_impl(key))) end |