Skip to content

核心 API の詳細解説

Playwright の最大の特徴は 「デフォルトでスマート」 であることです。Selenium では手動で書く必要があった多くの待機ロジックを、Playwright が自動で処理してくれます。


1. ページナビゲーション

javascript
await page.goto('https://example.com', { waitUntil: 'networkidle' });
意味推奨シーン
'domcontentloaded'DOM ツリーの構築完了画像に依存しない高速な操作
'load'すべてののリソース(画像含む)の読み込み完了一般的なシーン
'networkidle'500ms 以上ネットワーク活動がないSPA(シングルページアプリケーション)など

2. Locator による要素特定(Playwright の核心)

Playwright の Locator は従来の find_element に代わる革命的な仕組みです:

  • オートウェイト: 要素が出現し、操作可能(可視、静止、クリック可能)になるまで自動で待ちます。
  • リトライ: 操作が失敗した場合、自動的に再試行します。

代表的な特定方法

javascript
// ボタンを名前で特定(最も推奨)
page.getByRole('button', { name: 'ログイン' })

// テキスト内容で特定
page.getByText('今すぐ購入')

// プレースホルダーで特定
page.getByPlaceholder('電話番号を入力')

3. ネットワークインターセプト(Playwright の強み)

これは Selenium にはなかった、ブラウザがリクエストを送信する前に「傍受・変更」できる強力な機能です。

API レスポンスのモック化

javascript
await page.route('**/api/user/info', async route => {
  await route.fulfill({
    status: 200,
    contentType: 'application/json',
    body: JSON.stringify({ name: 'テストユーザー', vip: true })
  });
});

javascript
// すべての Cookie を取得
const cookies = await context.cookies();

// Cookie を注入(ページを開く前に実行するのがベスト)
await context.addCookies([
  { name: 'token', value: 'abc123', domain: '.example.com', path: '/' }
]);

TIP

基本操作は理解できましたか?次の章 実戦ケース集 では、ログイン、データ収集、並列処理などの具体的なテンプレートを紹介します。