Keyboard
Keyboard は、仮想キーボードを管理するための API を提供します。高レベル API は keyboard.type() で、これは生の文字を受け取り、適切な keydown
、keypress
/input
、および keyup
イベントをページ上で生成します。
より細かく制御するには、keyboard.down()、keyboard.up()、および keyboard.insert_text() を使用して、実際のキーボードから生成されたかのように手動でイベントを発火できます。
テキストを選択して削除するために Shift
キーを押し続ける例
- Sync
- Async
page.keyboard.type("Hello World!")
page.keyboard.press("ArrowLeft")
page.keyboard.down("Shift")
for i in range(6):
page.keyboard.press("ArrowLeft")
page.keyboard.up("Shift")
page.keyboard.press("Backspace")
# result text will end up saying "Hello!"
await page.keyboard.type("Hello World!")
await page.keyboard.press("ArrowLeft")
await page.keyboard.down("Shift")
for i in range(6):
await page.keyboard.press("ArrowLeft")
await page.keyboard.up("Shift")
await page.keyboard.press("Backspace")
# result text will end up saying "Hello!"
大文字の A
を押す例
- Sync
- Async
page.keyboard.press("Shift+KeyA")
# or
page.keyboard.press("Shift+A")
await page.keyboard.press("Shift+KeyA")
# or
await page.keyboard.press("Shift+A")
キーボードで全選択をトリガーする例
- Sync
- Async
page.keyboard.press("ControlOrMeta+A")
await page.keyboard.press("ControlOrMeta+A")
メソッド
down
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
は、Windows および Linux では Control
に、macOS では Meta
に解決されます。
Shift
キーを押し続けると、key に対応するテキストが大文字で入力されます。
key が単一の文字の場合、大文字と小文字が区別されるため、値 a
と A
はそれぞれ異なるテキストを生成します。
key が修飾キー(Shift
、Meta
、Control
、または Alt
)の場合、後続のキー入力はその修飾キーがアクティブな状態で送信されます。修飾キーを解除するには、keyboard.up() を使用します。
キーが一度押されると、後続の keyboard.down() の呼び出しでは、repeat が true に設定されます。キーを解除するには、keyboard.up() を使用します。
修飾キーは keyboard.down
に影響します。Shift
キーを押し続けると、テキストは大文字で入力されます。
使用法
keyboard.down(key)
引数
戻り値
insert_text
v1.9 より前に追加input
イベントのみを発行し、keydown
、keyup
、または keypress
イベントは発行しません。
使用法
- Sync
- Async
page.keyboard.insert_text("嗨")
await page.keyboard.insert_text("嗨")
修飾キーは keyboard.insertText
に影響しません。Shift
キーを押し続けても、テキストは大文字で入力されません。
引数
戻り値
press
v1.9 より前に追加ほとんどの場合、代わりに 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
は、Windows および Linux では Control
に、macOS では Meta
に解決されます。
Shift
キーを押し続けると、key に対応するテキストが大文字で入力されます。
key が単一の文字の場合、大文字と小文字が区別されるため、値 a
と A
はそれぞれ異なるテキストを生成します。
key: "Control+o"
、key: "Control++
、または key: "Control+Shift+T"
などのショートカットもサポートされています。修飾キーを指定すると、その修飾キーが押されたままになり、後続のキーが押されている間保持されます。
使用法
- Sync
- Async
page = browser.new_page()
page.goto("https://keycode.info")
page.keyboard.press("a")
page.screenshot(path="a.png")
page.keyboard.press("ArrowLeft")
page.screenshot(path="arrow_left.png")
page.keyboard.press("Shift+O")
page.screenshot(path="o.png")
browser.close()
page = await browser.new_page()
await page.goto("https://keycode.info")
await page.keyboard.press("a")
await page.screenshot(path="a.png")
await page.keyboard.press("ArrowLeft")
await page.screenshot(path="arrow_left.png")
await page.keyboard.press("Shift+O")
await page.screenshot(path="o.png")
await browser.close()
keyboard.down() および keyboard.up() のショートカット。
引数
-
押すキーの名前または生成する文字(
ArrowLeft
やa
など)。 -
keydown
とkeyup
の間の待機時間(ミリ秒単位)。デフォルトは 0 です。
戻り値
type
v1.9 より前に追加ほとんどの場合、代わりに locator.fill() を使用する必要があります。ページ上に特別なキーボード処理がある場合にのみ、キーを 1 つずつ押す必要があります。その場合は、locator.press_sequentially() を使用してください。
テキスト内の各文字に対して、keydown
、keypress
/input
、および keyup
イベントを送信します。
Control
や ArrowDown
などの特殊キーを押すには、keyboard.press() を使用します。
使用法
- Sync
- Async
page.keyboard.type("Hello") # types instantly
page.keyboard.type("World", delay=100) # types slower, like a user
await page.keyboard.type("Hello") # types instantly
await page.keyboard.type("World", delay=100) # types slower, like a user
修飾キーは keyboard.type
に影響しません。Shift
キーを押し続けても、テキストは大文字で入力されません。
US キーボードにない文字の場合、input
イベントのみが送信されます。
引数
戻り値
up
v1.9 より前に追加keyup
イベントを発行します。
使用法
keyboard.up(key)
引数
戻り値