メインコンテンツにスキップ

キーボード

keyboard(input: KeyboardInput): Promise<void>

キーボードAPIはキーボードによる操作をシミュレートすることを可能にします。キー操作を表す文字列を受け付けます。

キーストロークは以下のように記述できます。

  • 印刷可能な1文字ごと

    keyboard('foo') // translates to: f, o, o

    中括弧{と角括弧[は特殊文字として使用され、2回繰り返すことで参照できます。

    keyboard('{{a[[') // translates to: {, a, [
  • KeyboardEvent.keyごと

    keyboard('{Shift}{f}{o}{o}') // translates to: Shift, f, o, o

    これにより、キーは押され続けません。つまり、Shiftキーはfキーを押す前に解除されます。

    キー記述の中で特殊な意味を持つ文字は、バックスラッシュ\を前に付けることでエスケープできます。

    keyboard('{\\}}') // translates to: }
  • KeyboardEvent.codeごと

    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意味は異なるキーとして扱われます。

今後のバージョンでは、キーボード上で印刷可能なキーに到達するために必要な修飾子を内挿する可能性があります。たとえば、{Shift}がCapsLockがアクティブでないときに、Aが参照されると自動的に押されます。この動作を望まない場合は、automodifyオプションを無効にして、この非破壊的変更からオプトアウトできます。