microsoft/playwright
Developer ToolsDrive Chromium, Firefox and WebKit through one API for end-to-end tests, browser scripts, or AI-agent automation.
Playwright is a browser automation and testing framework that drives Chromium, Firefox and WebKit through a single API. It suits teams writing end-to-end web tests, plus people who need programmatic browser control for scripts, scraping, PDFs, screenshots, or agent-driven automation.
How it works
Playwright talks to real browsers and waits for elements to become actionable instead of relying on fixed sleeps; web-first assertions retry until their condition holds. Each test gets its own browser context, roughly a fresh browser profile, so saved login state can be reused without cross-test contamination. On failure you can capture traces, screenshots and video, then step through actions, DOM snapshots, network requests and console messages in the Trace Viewer (testing docs, Trace Viewer).
Choosing a use path
There are five documented entry points, each with its own install and audience (README):
- Playwright Test for end-to-end testing: a full runner with parallelism, isolation, auto-waiting and web-first assertions.
- Playwright Library (
playwright) for scripts without a test runner — screenshots, PDF generation, mobile emulation, network interception (library docs). - VS Code extension for authoring and debugging: run and breakpoint tests, record new tests with CodeGen, pick locators by hovering (VS Code guide).
- Playwright CLI aimed at coding agents, positioned as more token-efficient than MCP because commands avoid loading large tool schemas and accessibility trees into the model context (CLI docs).
- Playwright MCP for LLM-driven automation: agents act on structured accessibility snapshots and element references rather than vision or screenshots (MCP docs).
Pick only the path you need; the CLI and MCP routes assume a coding agent or MCP-capable client, not every testing workflow.
Compatibility and caveats
The current README lists Chromium 157.0.8103.15 (Chrome for Testing by default), WebKit 27.2 and Firefox 158.0 as supported on Linux, macOS and Windows, headed and headless (browser table, Chrome for Testing). The JavaScript/TypeScript packages are the reference path; Python, .NET and Java bindings exist with their own docs (Python, .NET, Java). The README does not document resource budgets, flakiness rates, or a supported-version policy beyond the listed browsers.
Licensed under Apache-2.0. External discussion is old and anecdotal: a 2022 Hacker News thread includes users praising explicit awaits and granular timeouts while comparing with Selenium (comment), but it predates current versions and should not be treated as a present-day evaluation.
HotRepo's take
The single recorded daily-board appearance (2026-10-29, +83 stars) is too thin to read as momentum. The practical question is narrower: which of the five paths matches your workflow and runtime.
Written by AI from the project's README, updated October 29, 2026. The project's own docs are the source of truth.