Navigate:
All Reposplaywright
~$PLAYWR0.1%

Playwright: Web testing and automation framework

Cross-browser automation framework with built-in test runner.

LIVE RANKINGS • 08:16 AM • STEADY
TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100TOP 100
OVERALL
#58
21
DEVELOPER TOOLS
#10
1
30 DAY RANKING TREND
ovr#58
·Devel#10
STARS
81.0K
FORKS
5.0K
DOWNLOADS
26.0M
7D STARS
+97
7D FORKS
+12
See Repo:
Share:

Learn more about playwright

Playwright is a Node.js framework for automating and testing web applications across multiple browser engines. It uses out-of-process browser automation, running tests in separate processes from the test runner to avoid typical in-process limitations. The framework includes auto-wait mechanisms for element readiness, web-first assertions with automatic retry logic, and support for multiple browser contexts within a single test. Common use cases include cross-browser end-to-end testing, web scraping, and automated user interaction testing across Chromium, Firefox, and WebKit on Linux, macOS, and Windows.


1

Out-of-Process Browser Automation

Tests run in separate processes from browsers, avoiding the constraints of in-process runners. Enables testing multiple tabs, origins, and user contexts simultaneously within a single test without architectural limitations.

2

Unified Multi-Browser API

Single API automates Chromium, Firefox, and WebKit without engine-specific code. Browser contexts provide full test isolation with independent profiles and minimal overhead, eliminating cross-test contamination.

3

Auto-Wait and Retry

Automatically waits for elements to become actionable before interactions and retries assertions until conditions are met. Eliminates manual timeout management and reduces flaky tests caused by timing issues.


const { chromium } = require('playwright');

(async () => {
  const browser = await chromium.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');
  await page.fill('#search', 'playwright');
  await page.click('button[type="submit"]');
  await page.screenshot({ path: 'results.png' });
  await browser.close();
})();

vv1.56.1

Maintenance release with Chromium permission fix and internal tooling adjustments; no breaking changes or user-facing migrations required.

  • Chromium now allows local-network-access permission for testing scenarios requiring local network resources.
  • Internal test agent tooling renamed and VSCode MCP workspace references removed; no action needed for standard users.
vv1.56.0

Introduces Playwright Agents (planner, generator, healer) for LLM-guided test creation; deprecates browserContext backgroundpage event.

  • Run `npx playwright init-agents --loop=<vscode|claude|opencode>` to generate agent definitions for automated test authoring workflows.
  • Stop listening to `browserContext.on('backgroundpage')` as it no longer emits; `browserContext.backgroundPages()` now returns empty array.
vv1.55.1

Patch release upgrading Chromium to 140.0.7339.186 and fixing two regressions in test execution and HTML reporter.

  • Upgrade to Chromium 140.0.7339.186; Firefox 141.0 and WebKit 26.0 remain unchanged from prior release.
  • Fixes internal 'step id not found' error and broken HTML reporter chip link when no projects are configured.

See how people are using playwright

Loading tweets...


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers