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

Keyboard

Keyboard предоставляет API для управления виртуальной клавиатурой. Высокоуровневое API - это Keyboard.type(), которое принимает сырые символы и генерирует соответствующие события keydown, keypress/input и keyup на вашей странице.

Для более тонкого управления вы можете использовать Keyboard.down(), Keyboard.up() и Keyboard.insertText() для ручного вызова событий, как если бы они были сгенерированы с реальной клавиатуры.

Пример удержания Shift для выделения и удаления текста:

page.keyboard().type("Hello World!");
page.keyboard().press("ArrowLeft");
page.keyboard().down("Shift");
for (int i = 0; i < " World".length(); i++)
page.keyboard().press("ArrowLeft");
page.keyboard().up("Shift");
page.keyboard().press("Backspace");
// Результирующий текст будет "Hello!"

Пример нажатия заглавной A

page.keyboard().press("Shift+KeyA");
// или
page.keyboard().press("Shift+A");

Пример вызова команды "выделить все" с помощью клавиатуры

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 напечатает текст в верхнем регистре.

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

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". При указании с модификатором, модификатор нажимается и удерживается, пока не будет нажата последующая клавиша.

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

Page page = browser.newPage();
page.navigate("https://keycode.info");
page.keyboard().press("A");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("A.png")));
page.keyboard().press("ArrowLeft");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("ArrowLeft.png")));
page.keyboard().press("Shift+O");
page.screenshot(new Page.ScreenshotOptions().setPath(Paths.get("O.png")));
browser.close();

Является сокращением для Keyboard.down() и Keyboard.up().

Аргументы

  • key String#

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

  • options Keyboard.PressOptions (опционально)

    • setDelay double (опционально)#

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

Возвращает


type

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

В большинстве случаев следует использовать Locator.fill() вместо этого. Вам нужно нажимать клавиши по одной, только если на странице есть специальная обработка клавиатуры - в этом случае используйте Locator.pressSequentially().

Отправляет события keydown, keypress/input и keyup для каждого символа в тексте.

Чтобы нажать специальную клавишу, такую как Control или ArrowDown, используйте Keyboard.press().

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

// Печатает мгновенно
page.keyboard().type("Hello");
// Печатает медленнее, как пользователь
page.keyboard().type("World", new Keyboard.TypeOptions().setDelay(100));
примечание

Модификаторы НЕ влияют на keyboard.type. Удержание Shift не напечатает текст в верхнем регистре.

примечание

Для символов, которых нет на клавиатуре США, будет отправлено только событие input.

Аргументы

  • text String#

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

  • options Keyboard.TypeOptions (опционально)

    • setDelay double (опционально)#

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

Возвращает


up

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

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

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

Keyboard.up(key);

Аргументы

  • key String#

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

Возвращает