
Chromium, Firefox, WebKit용 단일 API를 제공하는 브라우저 자동화 프레임워크입니다. 웹 테스트, 스크래핑, 스크린샷 및 네트워크 인터셉션을 지원합니다.
Playwright는 웹 자동화 및 테스트를 위한 프레임워크입니다. 단일 API로 Chromium, Firefox, WebKit을 구동합니다 — 테스트, 스크립트, 그리고 AI 에이전트를 위한 도구로 사용할 수 있습니다.
워크플로우에 맞는 경로를 선택하세요:
Playwright Test는 엔드투엔드 테스트를 위해 설계된 완전한 기능을 갖춘 테스트 러너입니다. Chromium, Firefox, WebKit에서 완전한 브라우저 격리, 자동 대기, 웹 우선 단언(assertion)과 함께 테스트를 실행합니다.
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
테스트는 기본적으로 헤드리스 모드에서 구성된 모든 브라우저에서 병렬로 실행됩니다. 각 테스트는 새로운 브라우저 컨텍스트를 받습니다 — 거의 제로 오버헤드의 완전한 격리를 제공합니다.
자동 대기 및 웹 우선 단언. 인위적인 타임아웃이 없습니다. Playwright는 요소가 조작 가능해질 때까지 대기하며, 단언은 조건이 충족될 때까지 자동으로 재시도합니다.
로케이터. 사용자가 페이지를 보는 방식을 반영하는 탄력적인 로케이터로 요소를 찾습니다:
page.getByRole('button', { name: 'Submit' })
page.getByLabel('Email')
page.getByPlaceholder('Search...')
page.getByTestId('login-form')
테스트 격리. 각 테스트는 자체 브라우저 컨텍스트에서 실행됩니다 — 새 브라우저 프로필과 동일합니다. 인증 상태를 한 번 저장하고 여러 테스트에서 재사용하세요:
// 로그인 후 상태 저장
await page.context().storageState({ path: 'auth.json' });
// 다른 테스트에서 재사용
test.use({ storageState: 'auth.json' });
트레이싱. 실패 시 실행 추적, 스크린샷, 비디오를 캡처합니다. Trace Viewer에서 모든 작업, 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
코딩 에이전트에 작업을 지정하세요:
playwright-cli를 사용하여 https://demo.playwright.dev/todomvc에서 "add todo" 흐름을 테스트하세요.
성공 및 실패 시나리오 모두에 대해 스크린샷을 찍으세요.
또는 명령을 직접 실행하세요:
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 어시스턴트에게 웹 페이지와 상호작용하도록 요청하세요:
https://demo.playwright.dev/todomvc로 이동하여 할 일 항목을 몇 개 추가하세요.
에이전트는 페이지를 구조화된 접근성 트리로 봅니다:
- heading "todos" [level=1]
- textbox "What needs to be done?" [ref=e5]
- listitem:
- checkbox "Toggle Todo" [ref=e10]
- text: "Buy groceries"
e5, e10과 같은 요소 참조를 사용하여 클릭, 입력, 상호작용합니다 — 결정적이고 시각적 모호함 없이. 도구는 탐색, 양식 작성, 스크린샷, 네트워크 모킹, 저장소 관리 등을 포함합니다.
브라우저 자동화 스크립트용 라이브러리로 playwright를 사용하세요 — 웹 스크래핑, 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가 테스트 코드를 작성하는 동안 앱을 탐색하고 상호작용하세요.
로케이터 선택. 브라우저의 요소 위에 마우스를 올리면 사용 가능한 최상의 로케이터를 확인하고, 클릭하여 클립보드에 복사하세요.
Trace Viewer 통합. 사이드바에서 "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 154.0.8037.0 | ✅ | ✅ | ✅ |
| WebKit 26.6 | ✅ | ✅ | ✅ |
| Firefox 155.0 | ✅ | ✅ | ✅ |