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

Keyboard

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

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

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

await page.Keyboard.TypeAsync("Hello World!");
await page.Keyboard.PressAsync("ArrowLeft");

await page.Keyboard.DownAsync("Shift");
for (int i = 0; i < " World".Length; i++)
await page.Keyboard.PressAsync("ArrowLeft");

await page.Keyboard.UpAsync("Shift");

await page.Keyboard.PressAsync("Backspace");
// Результирующий текст будет "Hello!"

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

await page.Keyboard.PressAsync("Shift+KeyA");
// или
await page.Keyboard.PressAsync("Shift+A");

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

await page.Keyboard.PressAsync("ControlOrMeta+A");

Методы​

DownAsync​

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

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

После того, как клавиша нажата один раз, последующие вызовы Keyboard.DownAsync() будут иметь repeat установленным в true. Чтобы отпустить клавишу, используйте Keyboard.UpAsync().

примечание

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

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

await Keyboard.DownAsync(key);

Аргументы

  • key string#

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

Возвращает


InsertTextAsync​

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

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

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

await page.Keyboard.PressAsync("嗨");
примечание

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

Аргументы

  • text string#

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

Возвращает


PressAsync​

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

В большинстве случаев следует использовать Locator.PressAsync() вместо этого.

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

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

await page.GotoAsync("https://keycode.info");
await page.Keyboard.PressAsync("A");
await page.ScreenshotAsync(new() { Path = "A.png" });
await page.Keyboard.PressAsync("ArrowLeft");
await page.ScreenshotAsync(new() { Path = "ArrowLeft.png" });
await page.Keyboard.PressAsync("Shift+O");
await page.ScreenshotAsync(new() { Path = "O.png" });
await browser.CloseAsync();

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

Аргументы

  • key string#

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

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

    • Delay [float]? (опционально)#

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

Возвращает


TypeAsync​

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

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

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

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

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

await page.Keyboard.TypeAsync("Hello"); // печатает мгновенно
await page.Keyboard.TypeAsync("World", new() { Delay = 100 }); // печатает медленнее, как пользователь
примечание

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

примечание

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

Аргументы

  • text string#

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

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

    • Delay [float]? (опционально)#

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

Возвращает


UpAsync​

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

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

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

await Keyboard.UpAsync(key);

Аргументы

  • key string#

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

Возвращает