Keyboard
Keyboard предоставляет API для управления виртуальной клавиатурой. Высокоуровневое API - это keyboard.type(), которое принимает сырые символы и генерирует соответствующие события keydown
, keypress
/input
и keyup
на вашей странице.
Для более тонкого управления вы можете использовать keyboard.down(), keyboard.up() и keyboard.insert_text() для ручного вызова событий, как если бы они были сгенерированы с реальной клавиатуры.
Пример удержания Shift
для выделения и удаления текста:
- Sync
- Async
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!"
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")
# result text will end up saying "Hello!"
Пример нажатия заглавной A
- Sync
- Async
page.keyboard.press("Shift+KeyA")
# or
page.keyboard.press("Shift+A")
await page.keyboard.press("Shift+KeyA")
# or
await page.keyboard.press("Shift+A")
Пример вызова выделения всего текста с помощью клавиатуры
- Sync
- Async
page.keyboard.press("ControlOrMeta+A")
await page.keyboard.press("ControlOrMeta+A")
Методы
down
Added before v1.9Выпускает событие keydown
.
key может указать предполагаемое значение keyboardEvent.key или один символ для генерации текста. Надмножество значений key можно найти здесь. Примеры клавиш:
F1
- F12
, Digit0
- Digit9
, KeyA
- KeyZ
, Backquote
, Minus
, Equal
, Backslash
, Backspace
, Tab
, Delete
, Escape
, ArrowDown
, End
, Enter
, Home
, Insert
, PageDown
, PageUp
, ArrowRight
, ArrowUp
и т.д.
Также поддерживаются следующие модификационные сочетания: Shift
, Control
, Alt
, Meta
, ShiftLeft
, ControlOrMeta
. ControlOrMeta
разрешается в Control
на Windows и Linux и в Meta
на macOS.
Удержание Shift
напечатает текст, соответствующий key в верхнем регистре.
Если key является одним символом, он чувствителен к регистру, поэтому значения a
и A
будут генерировать разные тексты.
Если key является модификаторной клавишей, Shift
, Meta
, Control
или Alt
, последующие нажатия клавиш будут отправлены с активным этим модификатором. Чтобы отпустить модификаторную клавишу, используйте keyboard.up().
После того, как клавиша нажата один раз, последующие вызовы keyboard.down() будут иметь repeat установленным в true. Чтобы отпустить клавишу, используйте keyboard.up().
Модификаторные клавиши ВЛИЯЮТ на keyboard.down
. Удержание Shift
напечатает текст в верхнем регистре.
Использование
keyboard.down(key)
Аргументы
Возвращает
insert_text
Added before v1.9Выпускает только событие input
, не генерирует события keydown
, keyup
или keypress
.
Использование
- Sync
- Async
page.keyboard.insert_text("嗨")
await page.keyboard.insert_text("嗨")
Модификаторные клавиши НЕ ВЛИЯЮТ на keyboard.insertText
. Удержание Shift
не напечатает текст в верхнем регистре.
Аргументы
Возвращает
press
Added before v1.9В большинстве случаев вам следует использовать locator.press() вместо этого.
key может указать предполагаемое значение keyboardEvent.key или один символ для генерации текста. Надмножество значений key можно найти здесь. Примеры клавиш:
F1
- F12
, Digit0
- Digit9
, KeyA
- KeyZ
, Backquote
, Minus
, Equal
, Backslash
, Backspace
, Tab
, Delete
, Escape
, ArrowDown
, End
, Enter
, Home
, Insert
, PageDown
, PageUp
, ArrowRight
, ArrowUp
и т.д.
Также поддерживаются следующие модификационные сочетания: Shift
, Control
, Alt
, Meta
, ShiftLeft
, ControlOrMeta
. ControlOrMeta
разрешается в Control
на Windows и Linux и в Meta
на macOS.
Удержание Shift
напечатает текст, соответствующий key в верхнем регистре.
Если key является одним символом, он чувствителен к регистру, поэтому значения a
и A
будут генерировать разные тексты.
Также поддерживаются сочетания клавиш, такие как key: "Control+o"
, key: "Control++
или key: "Control+Shift+T"
. При указании с модификатором, модификатор нажимается и удерживается, пока последующая клавиша нажата.
Использование
- Sync
- Async
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()
Является сокращением для keyboard.down() и keyboard.up().
Аргументы
-
Имя клавиши для нажатия или символ для генерации, например,
ArrowLeft
илиa
. -
Время ожидания между
keydown
иkeyup
в миллисекундах. По умолчанию 0.
Возвращает
type
Added before v1.9В большинстве случаев вам следует использовать locator.fill() вместо этого. Вам нужно нажимать клавиши по одной, только если на странице есть специальная обработка клавиатуры - в этом случае используйте locator.press_sequentially().
Отправляет события keydown
, keypress
/input
и keyup
для каждого символа в тексте.
Чтобы нажать специальную клавишу, такую как Control
или ArrowDown
, используйте keyboard.press().
Использование
- Sync
- Async
page.keyboard.type("Hello") # types instantly
page.keyboard.type("World", delay=100) # types slower, like a user
await page.keyboard.type("Hello") # types instantly
await page.keyboard.type("World", delay=100) # types slower, like a user
Модификаторные клавиши НЕ ВЛИЯЮТ на keyboard.type
. Удержание Shift
не напечатает текст в верхнем регистре.
Для символов, которые отсутствуют на клавиатуре США, будет отправлено только событие input
.
Аргументы
-
Текст для ввода в фокусированный элемент.
-
Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.
Возвращает
up
Added before v1.9Выпускает событие keyup
.
Использование
keyboard.up(key)
Аргументы
Возвращает