キーボード操作とマウス操作のシミュレーション

Playwrightにおける「キーボード操作とマウス操作のシミュレーション」は、ユーザーの物理的な操作を自動的に再現するための重要な機能です。フォームの入力、ボタンのクリック、ドラッグ操作など、多くの場面で活用されます。以下にそれぞれの操作方法について詳しく説明します。


1. キーボード操作のシミュレーション

Playwrightでは、page.keyboard オブジェクトを用いて、キーボードによる入力やキー操作をシミュレートできます。

主なメソッド

メソッド 説明
keyboard.type(text) 文字列を順番に入力します(各キーが1つずつ押される)
keyboard.press(key) 単一キーを押してすぐに離します(例:Enter, ArrowDownなど)
keyboard.down(key) 指定キーを押下状態にします
keyboard.up(key) 指定キーを離します
keyboard.insertText(text) 高速にテキストを入力します(IME対応が必要ない場面に有効)

例:フォームに入力しEnterキーを押す

javascript
await page.click('input#name'); await page.keyboard.type('Playwright User'); await page.keyboard.press('Enter');

2. マウス操作のシミュレーション

Playwrightでは、page.mouse オブジェクトを使用して、マウスによるクリック、移動、ドラッグなどを制御できます。

主なメソッド

メソッド 説明
mouse.move(x, y) 画面上の指定座標にマウスカーソルを移動
mouse.click(x, y[, options]) 指定位置をクリック(ボタンやクリック数指定可能)
mouse.down([options]) マウスボタンを押す
mouse.up([options]) マウスボタンを離す
mouse.dblclick(x, y) 指定位置でダブルクリック
mouse.wheel(deltaX, deltaY) ホイールのスクロール操作をシミュレーション

例:要素上でドラッグ操作を行う

javascript
const box = await page.locator('#draggable').boundingBox(); await page.mouse.move(box.x + box.width / 2, box.y + box.height / 2); await page.mouse.down(); await page.mouse.move(box.x + 100, box.y + 100); await page.mouse.up();

3. キーボードとマウスを組み合わせた例

たとえば、テキスト入力後に要素をクリックして送信する操作は以下のように記述できます。

javascript
await page.fill('#input-email', 'example@example.com'); await page.keyboard.press('Tab'); await page.fill('#input-password', 'securepassword'); await page.click('#submit-button');

まとめ

Playwrightのキーボード・マウス操作シミュレーションは、人間の操作を精密に再現できる強力な機能です。これにより、エンドツーエンドテストの信頼性と柔軟性が大きく向上します。具体的な操作パターンに応じて、keyboardmouse の各メソッドを適切に使い分けることが重要です。

ChatGPT4o 生成日:2025/06/22