Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Playwright is not a separate browser for people to install and browse with. It is an automation framework and API that launches supported browser engines, creates isolated sessions, and controls pages for tests, scripts, and AI-agent workflows. A typical run launches Chromium, Firefox, or WebKit, opens a browser context, creates a page (tab), and then navigates and interacts with the site.

This distinction explains nearly every Playwright term: the browser is the launched engine process, a BrowserContext is an isolated session, and a Page is a tab or popup inside that session.

What the “Playwright browser” actually is

Playwright is maintained as browser-automation software with APIs for TypeScript, Python, .NET, and Java. You write a program or test; Playwright starts a browser engine and drives it through that session. It can run headed, with a visible window, or headless, without displaying a window.

The browsers are installed separately from the framework. Each Playwright version expects specific browser binaries, installed with the Playwright command-line tools. Updating Playwright can therefore require installing the matching binaries again. See the current browser installation guide for supported commands and platform notes.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Managed engines versus branded browsers

Configuration What it means Important qualification
Playwright Chromium An open-source Chromium build downloaded for Playwright. It is not automatically the same binary or release channel as a user’s installed Chrome.
Chrome or Edge channel Playwright can be configured to launch a branded Chrome or Edge installation. The channel and installed browser must be available on the machine.
Playwright Firefox A Firefox build used by Playwright. Playwright applies patches, so behavior should not be described as an unmodified consumer Firefox installation.
Playwright WebKit A WebKit build supplied for automation. It is not the branded Safari application. For the closest Safari-like behavior, the documentation advises running WebKit on macOS where relevant.

Operating-system details can affect media codecs and other platform-dependent behavior, particularly for Firefox and WebKit. Test the browser configuration and operating system combination that matters to your users rather than assuming all engines are interchangeable.

How Playwright is structured

1. Browser: the launched engine

A browser type such as Chromium, Firefox, or WebKit is launched through Playwright. The launch creates the underlying browser process and returns a Browser object. You normally keep that process alive while creating one or more isolated contexts.

2. BrowserContext: an isolated session

A BrowserContext is similar to a fresh private browsing profile. Contexts created with browser.newContext() do not share cookies or cache with one another, and non-persistent contexts do not write browsing data to disk. You can run multiple contexts inside one browser process, avoiding the cost of launching a new process for every test. The browser-contexts guide explains this isolation model.

Contexts can also carry configuration such as viewport size, locale, permissions, timezone, geolocation, device emulation, authentication state, and request routing. This lets one browser process represent several user scenarios without state leaking between them.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Page: a tab or popup

A Page represents one tab or popup within a context. A context may contain several pages; they share the context’s cookies, cache, emulation, and routing settings. Scripts use pages to navigate, locate elements, enter data, click controls, and observe downloads, dialogs, requests, and new windows. See the Pages guide for popup and multi-page patterns.

4. Close in the right order

When you create contexts directly, close each context before closing the browser. This gives Playwright time to finish context resources and artifacts cleanly. A normal lifecycle is: launch browser, create context, create page, navigate and interact, close context, then close browser.

Rank #2
Sale
HTML and CSS: Design and Build Websites
  • HTML CSS Design and Build Web Sites
  • Comes with secure packaging
  • It can be a gift option

A minimal Playwright program

The following TypeScript example shows the complete lifecycle. Install Playwright in a project, install its browser binaries with the CLI, and then run the script. The exact installation command can change with your package manager; use the commands in the official Playwright documentation.

import { chromium } from 'playwright';

const browser = await chromium.launch({ headless: true });
const context = await browser.newContext({
  viewport: { width: 1280, height: 800 }
});
const page = await context.newPage();

await page.goto('https://example.com', { waitUntil: 'domcontentloaded' });
console.log(await page.title());
console.log(await page.locator('h1').innerText());

await context.close();
await browser.close();

The important point is not the selector or URL; it is the object sequence. The browser owns the process, the context owns isolated state, and the page is where navigation and interaction occur.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

How Playwright Test uses the model

Playwright Test supplies a context and page fixture for each test by default. Each test starts in a clean environment, reducing failures caused by cookies, local storage, or cache left by an earlier test. Isolation makes tests easier to run independently, but it does not make unreliable selectors or test data reliable automatically.

The runner also provides auto-waiting, assertions, tracing, and parallel execution. Auto-waiting waits for an element to become actionable before an operation; assertions wait for expected conditions. You still need stable locators, deterministic data, and a way to diagnose failures. Fixture details are documented in the Fixtures API.

Cross-browser projects and configuration choices

Playwright Test projects are named groups of tests with shared settings. A project can select Chromium, Firefox, WebKit, a branded Chrome or Edge channel, a device profile, or another configuration. You can run all projects or select one, allowing the same suite to cover the browser combinations your application promises to support. The projects guide describes this arrangement.

Choose an engine based on the behavior you need

  • Chromium: useful for Chromium-based desktop coverage and the default managed build.
  • Firefox: include it when Firefox-specific layout, input, or standards behavior matters; account for Playwright’s patched build and platform differences.
  • WebKit: useful for WebKit coverage, while remembering that it is not branded Safari.
  • Chrome or Edge channel: choose a branded channel when compatibility with that installed product is part of your requirement.

Headless versus headed

Headless mode is efficient for CI and unattended jobs. Headed mode opens a visible window and is useful while developing a locator, inspecting a navigation failure, or reproducing a visual issue. The browser binaries needed by your selected mode and engine still must be installed.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Contexts versus separate browser processes

Use multiple contexts when you need isolated users or scenarios in one run. Launch separate browser processes when process-level separation, different executable environments, or operational limits require it. Context isolation covers browser state; it does not make two tests independent if they mutate the same server-side account or database records.

What happens during a typical run

  1. Install matching binaries. Playwright’s CLI downloads the engine versions expected by your installed Playwright package.
  2. Launch an engine. Your code calls a browser type such as chromium.launch(), optionally with headless or channel settings.
  3. Create a context. The context receives emulation, locale, permissions, authentication, routing, and other session options.
  4. Create a page. The page is a tab-like target inside that context.
  5. Navigate and interact. Playwright waits for actionability, performs input, and can observe popups, requests, downloads, and dialogs.
  6. Collect diagnostics. Tests may record traces, screenshots, videos, or logs when configured.
  7. Close resources. Close contexts and then the browser so files and session resources are finalized.

Troubleshooting common Playwright problems

“Executable doesn’t exist” or a missing browser binary

Cause: the package is installed but its matching browser binary was not downloaded, or a Playwright update changed the expected revision.

Fix: run the browser-install command documented for your package manager and environment, then rerun the script. In CI, include that installation step in the build image or job rather than relying on a developer’s local cache.

Tests pass in Chromium but fail in Firefox or WebKit

Cause: genuine engine, operating-system, codec, timing, or standards differences; WebKit is not branded Safari, and Firefox uses Playwright patches.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fix: reproduce in the failing project and operating system, avoid engine-specific assumptions, use accessible and stable locators, and handle platform-dependent media behavior explicitly.

State leaks between tests

Cause: shared accounts, server-side records, a reused persistent profile, or application data outside the context’s cookies and cache.

Rank #4
Sale
Web Design with HTML, CSS, JavaScript and jQuery Set
  • Brand: Wiley
  • Set of 2 Volumes
  • A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers

Fix: keep the default fresh context per test, use unique test data, reset server state, and do not treat context isolation as database isolation.

A click fails because an element is not ready

Cause: the locator resolves to a hidden, covered, disabled, or changing element.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Fix: use a semantic locator, wait for the expected state, inspect the trace, and correct the page or test condition instead of adding arbitrary sleeps. Playwright’s auto-waiting helps only when the locator identifies the intended element.

Closing hangs or artifacts are incomplete

Cause: the browser was closed before its context, or an asynchronous operation was still running.

Fix: await pending actions, close contexts first, and close the browser last.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Performance, reliability, and cost considerations

Reusing one browser process with several contexts can reduce process-launch overhead while preserving cookie and cache isolation. Parallel projects and workers can shorten suites, but they also increase CPU, memory, server load, and the chance of test-data collisions. Set worker counts to what your CI machine and test environment can sustain.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Browser downloads, operating-system packages, and CI cache strategy affect build time. Pin your Playwright dependency, install the matching binaries in a repeatable build step, and review the browser guide after upgrades. Treat engine coverage as a compatibility decision, not a claim that one run proves every browser behaves identically.

Or skip the browser setup

If your goal is simply to obtain a clean website screenshot rather than write and maintain browser automation, ScreenshotNeo makes one HTTP request for a PNG, JPEG, WebP, or PDF. It accepts cookie and consent banners like a visitor, then removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers identify the page verdict and whether it was billed.

Here is the cURL call; the complete option reference is in the ScreenshotNeo documentation:

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python:

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo also offers an MCP server with take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. Options include full-page and element capture, device presets, retina scale, PDF margins and page ranges, custom CSS or JavaScript, clicks, selector waits, network-idle waits, blocking rules, headers, cookies, user agents, authorization, timezone, geolocation, transparent backgrounds, resizing, chosen cache TTLs, signed links, asynchronous webhooks, bulk capture of up to 100 URLs per call, a usage API, and an OpenAPI specification. Its parameter names are compatible with those used by other screenshot APIs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The Free plan includes 1,000 screenshots per month with no card; paid plans start at $5 for 3,000 screenshots. Create a free ScreenshotNeo account.

Frequently asked questions

Frequently Asked Questions

Can Playwright replace Chrome for everyday browsing?

No. Playwright launches browser engines for automation; it is not a consumer browser with normal browsing features, bookmarks, or an address-bar workflow.

Is Playwright WebKit the same as Safari?

No. It is a Playwright-supplied WebKit build. The documentation recommends macOS WebKit when you need behavior closest to Safari, but it is not the branded Safari application.

Do all Playwright tests need a new browser process?

No. Multiple isolated BrowserContexts can run inside one launched browser. Playwright Test creates a fresh context for each test by default.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which programming languages have Playwright APIs?

The official overview lists TypeScript, Python, .NET, and Java.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.