Keyboard
Keyboardは仮想キーボードを管理するためのAPIを提供します。高レベルAPIはkeyboard.type()で、生の文字を受け取り、ページ上で適切なkeydown
、keypress
/input
、keyup
イベントを生成します。
より細かく制御するには、keyboard.down()、keyboard.up()、keyboard.insert_text()を使用して、実際のキーボードから生成されたかのように手動でイベントを発火させることができます。
テキストを選択して削除するためにShift
キーを押し続ける例
- 同期
- 非同期
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
を押す例
- 同期
- 非同期
page.keyboard.press("Shift+KeyA")
# or
page.keyboard.press("Shift+A")
await page.keyboard.press("Shift+KeyA")
# or
await page.keyboard.press("Shift+A")
キーボードで全選択をトリガーする例
- 同期
- 非同期
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
イベントは発生させません。
使用方法
- 同期
- 非同期
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"
などのショートカットもサポートされています。修飾キーが指定された場合、修飾キーは押された状態で保持され、その後に続くキーが押されます。
使用方法
- 同期
- 非同期
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()を使用します。
使用方法
- 同期
- 非同期
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)
引数
戻り値