Playwright は、Web 自動化とテストのためのフレームワークです。単一の API で Chromium、Firefox、WebKit を操作でき、テスト、スクリプト、AI エージェント向けのツールとして利用できます。
ワークフローに合ったパスを選択してください:
Playwright Test は、エンドツーエンドテスト向けに作られたフル機能のテストランナーです。Chromium、Firefox、WebKit でテストを実行し、完全なブラウザ分離、自動待機、Web ファーストのアサーションを備えています。
npm init playwright@latest
または手動で追加:
npm i -D @playwright/test
npx playwright install
import { test, expect } from '@playwright/test';
test('has title', async ({ page }) => {
await page.goto('https://playwright.dev/');
await expect(page).toHaveTitle(/Playwright/);
});
test('get started link', async ({ page }) => {
await page.goto('https://playwright.dev/');
await page.getByRole('link', { name: 'Get started' }).click();
await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
});
npx playwright test
テストは設定されたすべてのブラウザで並列実行され、デフォルトではヘッドレスモードで動作します。各テストは新しいブラウザコンテキストを取得するため、ほぼゼロのオーバーヘッドで完全な分離が実現されます。
自動待機と Web ファーストのアサーション。 人為的なタイムアウトはありません。Playwright は要素が操作可能になるまで待機し、アサーションは条件が満たされるまで自動的に再試行されます。
ロケーター。 ユーザーがページをどのように見ているかを反映した、堅牢なロケーターで要素を見つけます:
page.getByRole('button', { name: 'Submit' })
page.getByLabel('Email')
page.getByPlaceholder('Search...')
page.getByTestId('login-form')
テストの分離。 各テストは独自のブラウザコンテキストで実行されます。これは新しいブラウザプロファイルと同等です。認証状態を一度保存すれば、複数のテストで再利用できます:
// Save state after login
await page.context().storageState({ path: 'auth.json' });
// Reuse in other tests
test.use({ storageState: 'auth.json' });
トレース。 失敗時に実行トレース、スクリーンショット、ビデオをキャプチャします。トレースビューアー ですべてのアクション、DOM スナップショット、ネットワークリクエスト、コンソールメッセージを確認できます:
// playwright.config.ts
export default defineConfig({
use: {
trace: 'on-first-retry',
},
});
npx playwright show-trace trace.zip
並列実行。 テストはデフォルトで、設定されたすべてのブラウザで並列実行されます。
Playwright CLI は、コーディングエージェント向けに設計されたブラウザ自動化のコマンドラインインターフェースです。MCP よりもトークン効率に優れており、コマンドは大きなツールスキーマやアクセシビリティツリーをモデルコンテキストに読み込むことを避けます。
npm install -g @playwright/cli@latest
よりリッチなエージェント統合のために、スキルをオプションでインストールすることもできます:
playwright-cli install --skills
コーディングエージェントにタスクを指示します:
Test the "add todo" flow on https://demo.playwright.dev/todomvc using playwright-cli.
Take screenshots for all successful and failing scenarios.
またはコマンドを直接実行します:
playwright-cli open https://demo.playwright.dev/todomvc/ --headed
playwright-cli type "Buy groceries"
playwright-cli press Enter
playwright-cli screenshot
playwright-cli show を使用すると、実行中のすべてのブラウザセッションのライブスクリーンキャストプレビューを備えたビジュアルダッシュボードを開けます。任意のセッションをクリックしてズームインし、リモートコントロールを取得できます。
playwright-cli show
Playwright MCP サーバー は、Model Context Protocol を通じて AI エージェントに完全なブラウザ制御を提供します。エージェントは構造化されたアクセシビリティスナップショットを使用してページと対話するため、ビジョンモデルやスクリーンショットは必要ありません。
MCP クライアント (VS Code、Cursor、Claude Desktop、Windsurf など) に追加します:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["@playwright/mcp@latest"]
}
}
}
VS Code 向けワンクリックインストール:
Claude Code の場合:
claude mcp add playwright npx @playwright/mcp@latest
AI アシスタントに任意の Web ページとの対話を依頼します:
Navigate to https://demo.playwright.dev/todomvc and add a few todo items.
エージェントはページを構造化されたアクセシビリティツリーとして認識します:
- heading "todos" [level=1]
- textbox "What needs to be done?" [ref=e5]
- listitem:
- checkbox "Toggle Todo" [ref=e10]
- text: "Buy groceries"
エージェントは e5 や e10 などの要素参照を使用してクリック、入力、操作を決定的に、かつ視覚的な曖昧さなく実行します。ツールはナビゲーション、フォーム入力、スクリーンショット、ネットワークモック、ストレージ管理などをカバーしています。
playwright をブラウザ自動化スクリプト用のライブラリとして使用します — Web スクレイピング、PDF 生成、スクリーンショットキャプチャ、そしてテストランナーなしでプログラムによるブラウザ制御を必要とするあらゆるワークフローに対応します。
npm i playwright
スクリーンショットを撮る:
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://playwright.dev/');
await page.screenshot({ path: 'screenshot.png' });
await browser.close();
PDF を生成する:
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://playwright.dev/');
await page.pdf({ path: 'page.pdf', format: 'A4' });
await browser.close();
モバイルデバイスをエミュレートする:
import { chromium, devices } from 'playwright';
const browser = await chromium.launch();
const context = await browser.newContext(devices['iPhone 15']);
const page = await context.newPage();
await page.goto('https://playwright.dev/');
await page.screenshot({ path: 'mobile.png' });
await browser.close();
ネットワークリクエストをインターセプトする:
import { chromium } from 'playwright';
const browser = await chromium.launch();
const page = await browser.newPage();
await page.route('**/*.{png,jpg,jpeg}', route => route.abort());
await page.goto('https://playwright.dev/');
await browser.close();
Playwright VS Code 拡張機能 は、テスト実行、デバッグ、コード生成をエディターに直接もたらします。
テストの実行とデバッグ: エディターからワンクリックで実行できます。ブレークポイントを設定し、変数を検査し、ライブブラウザビューでテスト実行をステップ実行できます。
CodeGen でテストを生成。 "Record new" をクリックしてブラウザを開き、Playwright がテストコードを作成している間にアプリを操作します。
ロケーターを選択。 ブラウザ内の任意の要素にホバーして最適なロケーターを確認し、クリックしてクリップボードにコピーします。
トレースビューアー統合。 サイドバーで "Show Trace Viewer" を有効にすると、各テスト実行後に完全な実行トレースを取得できます — すべてのステップで DOM スナップショット、ネットワークリクエスト、コンソールログ、スクリーンショットが記録されます。
すべてのプラットフォームでヘッドレスおよびヘッド付き実行に対応。 1 デフォルトで Chrome for Testing を使用します。
Playwright は Python、.NET、Java でも利用できます。
| 最適な用途 | インストール |
|---|
| Playwright Test | エンドツーエンドテスト | npm init playwright@latest |
| Playwright CLI | コーディングエージェント (Claude Code、Copilot) | npm i -g @playwright/cli@latest |
| Playwright MCP | AI エージェントと LLM 駆動の自動化 | npx @playwright/mcp@latest |
| Playwright Library | ブラウザ自動化スクリプト | npm i playwright |
| VS Code 拡張機能 | VS Code でのテスト作成とデバッグ | マーケットプレイスからインストール |
| Linux | macOS | Windows |
|---|
| Chromium1 152.0.7977.54 | ✅ | ✅ | ✅ |
| WebKit 26.5 | ✅ | ✅ | ✅ |
| Firefox 153.0 | ✅ | ✅ | ✅ |