Keyboard
Keyboard предоставляет API для управления виртуальной клавиатурой. Высокоуровневое API – это keyboard.type(), которое принимает сырые символы и генерирует соответствующие события keydown
, keypress
/input
и keyup
на вашей странице.
Для более тонкого управления вы можете использовать keyboard.down(), keyboard.up() и keyboard.insertText(), чтобы вручную вызывать события, как если бы они были сгенерированы с реальной клавиатуры.
Пример удержания Shift
для выделения и удаления текста:
await page.keyboard.type('Hello World!');
await page.keyboard.press('ArrowLeft');
await page.keyboard.down('Shift');
for (let i = 0; i < ' World'.length; i++)
await page.keyboard.press('ArrowLeft');
await page.keyboard.up('Shift');
await page.keyboard.press('Backspace');
// Результирующий текст будет 'Hello!'
Пример нажатия заглавной A
await page.keyboard.press('Shift+KeyA');
// или
await page.keyboard.press('Shift+A');
Пример вызова команды "выделить всё" с помощью клавиатуры
await page.keyboard.press('ControlOrMeta+A');
Методы
down
Добавлено до версии 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
напечатает текст в верхнем регистре.
Использование
await keyboard.down(key);
Аргументы
Возвращает
insertText
Добавлено до версии v1.9Вызывает только событие input
, не генерирует события keydown
, keyup
или keypress
.
Использование
page.keyboard.insertText('嗨');
Модификаторные клавиши НЕ ВЛИЯЮТ на keyboard.insertText
. Удержание Shift
не напечатает текст в верхнем регистре.
Аргументы
Возвращает
press
Добавлено до версии 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"
. При указании с модификатором, модификатор нажимается и удерживается, пока не будет нажата последующая клавиша.
Использование
const page = await browser.newPage();
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: 'ArrowLeft.png' });
await page.keyboard.press('Shift+O');
await page.screenshot({ path: 'O.png' });
await browser.close();
Является сокращением для keyboard.down() и keyboard.up().
Аргументы
-
Имя клавиши для нажатия или символ для генерации, например,
ArrowLeft
илиa
. -
options
Object (опционально)
Возвращает
type
Добавлено до версии v1.9В большинстве случаев вам следует использовать locator.fill() вместо этого. Вам нужно нажимать клавиши по одной, только если на странице есть специальная обработка клавиатуры - в этом случае используйте locator.pressSequentially().
Отправляет события keydown
, keypress
/input
и keyup
для каждого символа в тексте.
Чтобы нажать специальную клавишу, такую как Control
или ArrowDown
, используйте keyboard.press().
Использование
await page.keyboard.type('Hello'); // Печатает мгновенно
await page.keyboard.type('World', { delay: 100 }); // Печатает медленнее, как пользователь
Модификаторные клавиши НЕ ВЛИЯЮТ на keyboard.type
. Удержание Shift
не напечатает текст в верхнем регистре.
Для символов, которых нет на клавиатуре США, будет отправлено только событие input
.
Аргументы
-
Текст для ввода в фокусированный элемент.
-
options
Object (опционально)
Возвращает
up
Добавлено до версии v1.9Вызывает событие keyup
.
Использование
await keyboard.up(key);
Аргументы
Возвращает