Skip to main content
Your agent gets the page, every time. That claim rests on a specific, measured decision: click(), fill(), type(), hover(), press() and selectOption() all go through a measured human input model by default, rather than the exact, instantaneous input a scripted browser normally produces. The ordering is deliberate: the failure worth guarding against is forgetting to opt into careful input, not forgetting to opt out of it. A page that accepts input correctly the first time is one where forms submit, sessions hold, and logins stick, which is the whole reliability claim this product sells. page.goto() and page.title() are not modelled this way, deliberately, navigation has no human analogue.

The escape hatch

page.raw.* reaches Playwright’s own unmodified input directly, for the setup steps where speed genuinely matters more than realism. Every call through it is recorded against the session’s own replay, so a run that later behaves unexpectedly is not a mystery to whoever reviews it afterward, the choice to use it is visible on review rather than hidden.
This page describes measured input behaviour and why it matters for pages working correctly. The product does not name what it runs underneath; the claim is that the page loads, the form accepts the input, and the session holds.