Back to all posts

Stealth tools · Sep 25, 2026 · 4 min read

Patchright review: 25 of 31 targets against Playwright's 24

What Patchright patches in Playwright, what it leaves alone, why its console stays silent, and how its input compares with Puppeteer and Selenium.

DG
Pixel art of an old wooden footbridge over a stream at blue hour, new pale planks set between the weathered ones

In short

Patchright is a drop-in replacement for Playwright that patches the leaks of the automation protocol, among them Runtime.enable and Console.enable, and keeps Playwright's interface. Its patch list names no fingerprint surface and no change to input. In Ian L. Paterson's benchmark over 31 targets it reached 25 OK against 24 for vanilla Playwright, with 3 blocked instead of 5. Its PyPI package was downloaded 3,593,915 times in the month to 24 September 2026.

Patchright promises the smallest possible change to existing code: swap one import, keep every Playwright call, and lose the protocol traces Playwright leaves. It is among the most downloaded tools of its kind, with 3.6 million Python installs in a month. We read its README, its release history and its download figures on 24 September 2026, and set its input against our own recordings of Playwright, Puppeteer and Selenium.

What is Patchright?

Patchright is a patched build of the Playwright driver for Python and Node that keeps Playwright's API and changes how the driver talks to Chromium. It is licensed Apache-2.0 and follows Playwright's version numbers.

MeasurePatchright
Latest release1.63.0, 8 September 2026
PyPI downloads, last month3,593,915
npm downloads, 15 to 21 September300,789
GitHub stars4,674
Source: GitHub API, pypistats.org and api.npmjs.org, read 24 September 2026

What does it patch and what does it leave?

Patchright patches the driver's protocol traffic and leaves the browser's fingerprint and the input as Playwright produces them. Its README lists the patches:

  • Runtime.enable. Patchright "avoids using Runtime.enable by executing Javascript in (isolated) ExecutionContexts", so the page does not see the runtime domain switched on.
  • Console.enable. The console domain stays off, and the README says plainly that "console functionality will not work in Patchright".
  • Command line flags. It adds --disable-blink-features=AutomationControlled and removes --enable-automation.
  • Closed shadow roots. Elements inside closed shadow roots become reachable with normal locators.

What it leaves is named just as openly:

  • Browsers. "Patchright only patches CHROMIUM based browsers. Firefox and Webkit are not supported."
  • Tests. It does not pass every Playwright test, and the maintainers call the known bugs unlikely to matter in regular use.
  • Fingerprint and input. The patch list contains no canvas, WebGL, font, TLS or input change, so those reach the page as Playwright and Chromium produce them. Other undetected browser options rebuild the browser to change some of them.

Why is the console disabled in Patchright?

The console is disabled because enabling the console domain is itself one of the protocol traces Patchright removes. The cost falls on debugging: messages a page writes to its console no longer reach your script.

Why is a drop-in replacement not enough?

A drop-in replacement fixes the protocol and inherits everything else, and the benchmark result reflects that. In Ian L. Paterson's test of 7 tools against 31 targets, published on 13 May 2026, Patchright reached 25 targets and blocked on 3, vanilla Playwright reached 24 and blocked on 5, and nodriver, which drives Chrome without Playwright, reached 28 with none blocked. Paterson's reading: "Playwright forks fail regardless of patch quality, and defeating that layer takes a control plane that is not Playwright."

How does Patchright compare with Selenium and Puppeteer?

Patchright types and clicks the way Playwright does, and on our signature bench that already differed from Puppeteer and Selenium. We recorded each tool's input twice against Chrome 141 on 24 August 2026.

ToolPointer pressure on pressCapital letters
Playwright0.5typed without Shift
Puppeteer0typed without Shift
Selenium0Shift pressed for each one
Source: Scalebrowser signature bench, playwright-core 1.62.1, puppeteer-core 24.43.1, selenium-webdriver 4.47.0, Chrome 141.0.7390.122, 2 runs each, 24 August 2026

For hardware without pressure sensing, the Pointer Events specification says the value "MUST be 0.5 when in the active buttons state", so the 0 from Puppeteer and Selenium is an impossible value, and Playwright gets it right. Playwright and Puppeteer both produce capital letters without a Shift key, which a keyboard does only with Caps Lock on. We recorded Playwright itself, and Patchright's patch list names no change to input, so a page reading these events should see the same from Patchright.

So which should you pick?

SituationPickWhy
Existing Playwright code, protocol leaks are the blockerPatchrightone import changes, 25 of 31 against 24
You debug with the page's console outputplain PlaywrightPatchright switches the console off
Firefox or WebKitnot Patchrightit patches Chromium only
A site that fingerprints canvas, WebGL or fontsa patched browser rather than a patched driverPatchright leaves those values alone
A site that scores input eventsan input layer modelled on peoplePatchright keeps Playwright's input

Our verdict: Patchright is the smallest upgrade for Playwright code, one import for fewer protocol traces, and it is honest about its limits. It is not a fingerprint tool and not an input tool, and the benchmark placed it one target above the Playwright it replaces. The migration guide for Playwright shows how the same code attaches to a profile over CDP.

Scalebrowser gives each agent its own isolated browser with a persistent identity, on your own machine, so a run stays signed in, handles the captcha and finishes without anyone watching it.

Start the 7-day trial

Run it on your own machine

Seven days to try it with your own agents on your own sites. Starting the trial needs a card.

Start the 7-day trial
DG

Davide Grasböck

Founder, Scalebrowser

Builds Scalebrowser, the browser layer for AI agents that runs on your own machine. Measures every change a web page could observe against a real browser before it ships, and writes up the ones that turned out wrong.