鍵盤
keyboard(input: KeyboardInput): Promise<void>
keyboard
API 允許模擬與鍵盤的互動。它接受一個 string
來描述按鍵操作。
按鍵可以被描述
每個可列印字元
keyboard('foo') // translates to: f, o, o
開頭括號
{
和[
被用作特殊字元,可以通過重複它們來引用。keyboard('{{a[[') // translates to: {, a, [
keyboard('{Shift}{f}{o}{o}') // translates to: Shift, f, o, o
這不會保持任何按鍵被按下。因此,
Shift
會在按下f
之前被釋放。按鍵描述符中具有特殊含義的字元可以使用反斜線
\
作為前綴進行轉義。keyboard('{\\}}') // translates to: }
keyboard('[ShiftLeft][KeyF][KeyO][KeyO]') // translates to: Shift, f, o, o
按鍵可以通過在描述符的末尾添加 >
來保持按下狀態。
如果這應該導致重複的 keydown
事件,您可以添加重複的次數。
如果按鍵也應該在此之後被釋放,請在描述符的末尾添加斜線 /
。
keyboard('{a>}') // press a without releasing it
keyboard('{a>5}') // press a without releasing it and trigger 5 keydown
keyboard('{a>5/}') // press a for 5 keydown and then release it
之前按下的按鍵可以通過在描述符前加上 /
來釋放。
keyboard('{/a}') // release a previously pressed a
這允許模擬按鍵組合。
keyboard('{Shift>}A{/Shift}') // translates to: Shift(down), A, Shift(up)
key
到 code
的映射是由一個 預設鍵盤映射 執行的,該映射描繪了一個「預設」的美國鍵盤。您可以通過 keyboardMap
選項提供您自己的本地鍵盤映射。
目前,單個按鍵的不同 key
含義被視為不同的按鍵。
未來的版本可能會嘗試插值在鍵盤上達到可列印按鍵所需的修飾符。例如,當 CapsLock 未啟用且引用
A
時,自動按下{Shift}
。如果您不希望此行為,您可以停用autoModify
選項以選擇不使用此非破壞性變更。