This is an early release preview. You may encounter bugs.
Playwright logo
Unclaimed

Tool interface qa

Playwright

Drives Chromium, Firefox, and WebKit through one API for e2e tests, scripts, and AI-agent automation via MCP or CLI

Built by Microsoft

A+ 94/100 GitHub score ? This grade is derived from GitHub signals, not user votes. Open for the full breakdown.
No votes yet

01 / About

What Playwright is.

Playwright is a framework for web automation and testing that drives Chromium, Firefox, and WebKit through a single API. The same API serves test suites, automation scripts, and AI agents, on Linux, macOS, and Windows, headless or headed.

Playwright Test is the test runner built on it. Tests run in parallel across configured browsers, each in its own browser context, so isolation costs close to nothing and saved authentication state can be reused across tests. Locators such as getByRole, getByLabel, getByPlaceholder, and getByTestId target elements the way a user sees them, actions wait for elements to become actionable, and assertions retry until the condition holds. Traces, screenshots, and videos captured on failure open in the Trace Viewer with every action, DOM snapshot, network request, and console message.

For agents there are two entry points. The Playwright MCP server exposes browser control over the Model Context Protocol, handing the agent a structured accessibility tree with element references instead of screenshots, so no vision model is needed; its tools cover navigation, form filling, screenshots, network mocking, and storage management. The Playwright CLI is a command-line interface aimed at coding agents, which avoids loading large tool schemas and accessibility trees into the model context, and its show command opens a dashboard with live screencasts of running sessions that you can take remote control of.

Used as a plain library, Playwright handles scraping, PDF generation, screenshot capture, device emulation, and network interception without a test runner. A VS Code extension adds in-editor running, debugging, locator picking, and test recording, and bindings exist for Python, .NET, and Java alongside JavaScript and TypeScript.

Features

  • One API, three engines: Chromium, WebKit, and Firefox on Linux, macOS, and Windows, headless or headed
  • Auto-waiting and retrying assertions: actions wait for actionability and assertions retry, without fixed timeouts
  • Resilient locators: getByRole, getByLabel, getByPlaceholder, and getByTestId instead of CSS paths
  • Test isolation: a fresh browser context per test, with storage state saved once and reused
  • Tracing: execution traces, screenshots, and videos inspected in the Trace Viewer
  • Parallelism: tests run in parallel by default and shard across machines
  • MCP server: browser control for agents over accessibility snapshots with element refs
  • Agent CLI: a token-efficient command line with installable skills and a live session dashboard
  • Library mode: scripting for scraping, PDFs, screenshots, device emulation, and request interception
  • VS Code extension: run, debug, record tests, and pick locators from the editor
  • Other languages: bindings for Python, .NET, and Java

02 / Discussion CREDIBILITY-GATED

Discussion

Reading is open to everyone. Posting and voting need a verified identity or a GitHub grade of B or higher.

  • No discussions yet.

04 / Build

Build with Playwright.

Browse the catalogue for frameworks, tools, and harnesses, each scored on real GitHub credibility.

Get Playwright →

Browse the catalogue