Перейти к основному содержимому

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 keyboard.down

Вызывает событие 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);

Аргументы

  • key string#

    Имя клавиши для нажатия или символ для генерации, например, ArrowLeft или a.

Возвращает


insertText​

Добавлено до версии v1.9 keyboard.insertText

Вызывает только событие input, не генерирует события keydown, keyup или keypress.

Использование

page.keyboard.insertText('嗨');
примечание

Модификаторные клавиши НЕ ВЛИЯЮТ на keyboard.insertText. Удержание Shift не напечатает текст в верхнем регистре.

Аргументы

  • text string#

    Устанавливает ввод в указанное текстовое значение.

Возвращает


press​

Добавлено до версии v1.9 keyboard.press
подсказка

В большинстве случаев вам следует использовать 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().

Аргументы

  • key string#

    Имя клавиши для нажатия или символ для генерации, например, ArrowLeft или a.

  • options Object (опционально)

    • delay number (опционально)#

      Время ожидания между keydown и keyup в миллисекундах. По умолчанию 0.

Возвращает


type​

Добавлено до версии v1.9 keyboard.type
предупреждение

В большинстве случаев вам следует использовать 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.

Аргументы

  • text string#

    Текст для ввода в фокусированный элемент.

  • options Object (опционально)

    • delay number (опционально)#

      Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.

Возвращает


up​

Добавлено до версии v1.9 keyboard.up

Вызывает событие keyup.

Использование

await keyboard.up(key);

Аргументы

  • key string#

    Имя клавиши для нажатия или символ для генерации, например, ArrowLeft или a.

Возвращает