Next-Gen App & Browser Testing Cloud
Trusted by 2 Mn+ QAs & Devs to accelerate their release cycles

Playwright cannot transparently cover every operating system and browser version because it does not drive your installed browsers by default. When you install Playwright, it downloads its own patched binaries: open-source Chromium, a build that matches recent Firefox Stable, and a WebKit build close to Safari. Those bundled engines run only on the operating systems Playwright supports, and their versions are pinned to the Playwright release. To widen coverage you opt into branded Chrome or Edge with the channel option, fan out engines with the projects config, and run on a cloud grid that exposes real operating systems and explicit browser versions.
Playwright's reliability comes from a deliberate design choice: instead of automating whatever browser happens to be on your machine, it downloads and bundles its own browser builds during installation. These are patched binaries, not the browsers you install from a vendor. Chromium is an open-source build rather than branded Google Chrome, Firefox is a build that tracks recent Firefox Stable, and WebKit is derived from the upstream WebKit main branch rather than the version Apple ships as Safari.
This keeps results consistent across every machine, from a developer laptop to a CI runner, because everyone runs the exact same engine build. The trade-off is that Playwright is not, out of the box, a tool for testing against an arbitrary matrix of real operating systems and stock browser versions. It tests against its pinned engine for the host OS it is currently running on.
If you need the real, branded browser rather than bundled Chromium, the channel option tells Playwright to drive a browser already installed on the host. This is the right move when behavior depends on licensed media codecs or vendor-specific features that the open-source Chromium build does not include.
// playwright.config.js
import { defineConfig } from '@playwright/test';
export default defineConfig({
use: {
channel: 'chrome', // also: 'msedge', 'chrome-beta', 'msedge-beta',
// 'chrome-dev', 'msedge-dev',
// 'chrome-canary', 'msedge-canary'
},
});The branded browser must be installed on the machine. Playwright can install the supported Chrome and Edge channels for you, after which you run your suite as usual.
# install branded channels and required system dependencies
npx playwright install chrome msedge
npx playwright install-deps
# run the suite
npx playwright testNote that channel covers Chrome and Edge only. There is no equivalent that drives a real, branded Safari, which is why WebKit remains the closest local approximation for Safari behavior.
To run the same tests across Chromium, Firefox, and WebKit, plus branded Chrome and Edge, use the projects array. Each project pins a browser or channel, and Playwright runs the suite once per project. This is the standard way to get multi-browser coverage from a single configuration.
// playwright.config.js
import { defineConfig, devices } from '@playwright/test';
export default defineConfig({
projects: [
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
{ name: 'chrome', use: { ...devices['Desktop Chrome'], channel: 'chrome' } },
{ name: 'msedge', use: { ...devices['Desktop Edge'], channel: 'msedge' } },
],
});You can run every project or target a single one when you only care about one engine.
# run all projects
npx playwright test
# run a single project
npx playwright test --project=webkitThe projects config solves the engine dimension, but it still runs on the one operating system the machine is booted into and on the versions pinned by your Playwright release. For real OS and version variety you need a grid.
The clean way to escape the single-OS, pinned-version limit is to execute your Playwright tests on a cloud grid that exposes real operating systems and explicit browser versions. You keep your existing test code and point Playwright at the remote grid, which then runs each session on the OS and browser version you request. With TestMu AI Playwright Testing you can run across Chromium, Firefox, and WebKit as well as branded Chrome and Edge, on real Windows and macOS, with Playwright versions from v1.15 to the latest.
// capabilities for a cloud Playwright session
const capabilities = {
browserName: 'pw-webkit', // pw-chromium, pw-firefox, pw-webkit, Chrome, MicrosoftEdge
browserVersion: 'latest',
'LT:Options': {
platform: 'Windows 11', // pick the real OS for this run
name: 'OS and version coverage',
build: 'Playwright Cross-Platform',
useSpecificBundleVersion: true, // match your local Playwright engine build
},
};Setting useSpecificBundleVersion makes the grid select the Chromium, Firefox, or WebKit build that matches your local Playwright version, so cloud runs reproduce the same engine your developers use. This combination gives you the real OS matrix and explicit version control that a local install cannot, while keeping your test logic unchanged. If your blocker is specifically about getting tests off your laptop, see the related question on running Playwright in the cloud below.
WebKit is the engine inside Safari, so Playwright's WebKit is a good proxy for Safari rendering and is far better than skipping Safari coverage entirely. It is not, however, the same as a shipped Safari build. Apple's Safari includes platform integrations and licensed media support that the open WebKit build does not always carry, and version cadence differs. For anything where Safari behavior is business-critical, validate on real macOS or iOS rather than relying only on the bundled WebKit engine.
| Approach | What it gives you | Main limit |
|---|---|---|
| Bundled binaries (default) | Consistent Chromium, Firefox, WebKit on the host OS | Not real Chrome or Safari; version pinned to Playwright |
| channel option | Real branded Chrome or Edge, including beta and canary | Chrome and Edge only; no branded Safari; still one OS |
| projects config | Multi-engine fan-out from one configuration | Runs only on the current machine's single OS |
| Cloud grid | Real OS matrix plus explicit browser versions | Requires network access and a grid account |
Not by default. Playwright downloads its own patched binaries: open-source Chromium rather than branded Chrome, a build matching recent Firefox Stable, and a WebKit build derived from the WebKit main branch rather than branded Safari. You can opt into installed branded Chrome and Edge with the channel option, but Safari itself is not directly drivable.
Each Playwright release pins specific engine builds, so the cleanest way to target a particular version locally is to install the matching Playwright version. For older or arbitrary versions and a wider OS matrix, run on a cloud grid where you can select the browser version and operating system explicitly per session.
No. Playwright's WebKit is derived from the upstream WebKit sources and approximates Safari's rendering, but it is not byte-identical to a shipped Safari. Differences can appear in media codecs and some platform APIs, so Safari-critical behavior should be confirmed on real macOS or iOS.
No. Playwright supports a finite set of operating systems, including Windows 10 (1809+) and 11, macOS 10.15 and later, and specific Linux distributions such as Ubuntu, Debian, and Fedora. A single machine also runs only one OS at a time, so a local install cannot reproduce a full cross-OS matrix on its own.
The channel option tells Playwright to drive a branded browser installed on the host instead of the bundled binary. Valid channels include chrome, msedge, chrome-beta, msedge-beta, chrome-dev, msedge-dev, chrome-canary, and msedge-canary. It is the right choice when you need real Chrome or Edge behavior, such as licensed media codecs.
Combine the projects config for local engine fan-out with a cloud Playwright grid for real operating systems and explicit browser versions. A cloud grid lets you pick the OS and browser version per run and can match your local engine bundle, which a single laptop cannot do.
KaneAI - Testing Assistant
World’s first AI-Native E2E testing agent.

TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance