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Вызывает событие 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);
Аргументы
Возвращает
InsertTextAsync
Добавлено до версии v1.9Вызывает только событие input, не генерирует события keydown, keyup или keypress.
Использование
await page.Keyboard.PressAsync("嗨");
Модификаторы НЕ влияют на keyboard.insertText. Удержание Shift не напечатает текст в верхнем регистре.
Аргументы
Возвращает
PressAsync
Добавлено до версии v1.9В большинстве случаев следует использовать 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().
Аргументы
-
Имя клавиши для нажатия или символ для генерации, например,
ArrowLeftилиa. -
optionsKeyboardPressOptions?(опционально)-
Delay[float]? (опционально)#Время ожидания между
keydownиkeyupв миллисекундах. По умолчанию 0.
-
Возвращает
TypeAsync
Добавлено до версии v1.9В большинстве случаев следует использовать 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.
Аргументы
-
Текст для ввода в фокусированный элемент.
-
optionsKeyboardTypeOptions?(опционально)-
Delay[float]? (опционально)#Время ожидания между нажатиями клавиш в миллисекундах. По умолчанию 0.
-
Возвращает
UpAsync
Добавлено до версии v1.9Вызывает событие keyup.
Использование
await Keyboard.UpAsync(key);
Аргументы
Возвращает