核心 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 })
});
});4. Cookie 操作
javascript
// すべての Cookie を取得
const cookies = await context.cookies();
// Cookie を注入(ページを開く前に実行するのがベスト)
await context.addCookies([
{ name: 'token', value: 'abc123', domain: '.example.com', path: '/' }
]);TIP
基本操作は理解できましたか?次の章 実戦ケース集 では、ログイン、データ収集、並列処理などの具体的なテンプレートを紹介します。
