Skip to main content
Playwright cloud browsers

Run Playwright on Notte cloud browsers

Playwright is the automation library. Notte is the managed browser infrastructure around it: cloud sessions, profiles, proxies, CAPTCHA handling, live view, replays, observability, file storage, and serverless deployment.

Why use Notte with Playwright?

Local Playwright is excellent for development and deterministic browser control. Production workflows usually need more than a local browser: isolated cloud sessions, reliable identity, persistent profiles, proxy routing, CAPTCHA handling, debugging artifacts, and deployment infrastructure. Notte adds those layers while preserving the Playwright API your team already uses.

Connect Playwright to a Notte browser session

Python
from notte_sdk import NotteClient
from playwright.sync_api import sync_playwright

client = NotteClient()

with client.Session() as session:
    cdp_url = session.cdp_url

    with sync_playwright() as p:
        browser = p.chromium.connect_over_cdp(cdp_url)
        page = browser.contexts[0].pages[0]
        page.goto("https://example.com")
        print(page.title())
        browser.close()
TypeScript
import { chromium } from "playwright";
import { NotteClient } from "@notte/sdk";

const client = new NotteClient();
const session = await client.sessions.start();

const browser = await chromium.connectOverCDP(session.cdpUrl);
const page = browser.contexts()[0].pages()[0];

await page.goto("https://example.com");
console.log(await page.title());

await browser.close();
await session.stop();

Use persistent browser profiles

Attach a Notte profile when your Playwright workflow should reuse cookies, localStorage, and authenticated state across runs.

Use proxies and CAPTCHA solving

Run Playwright from managed browser sessions with proxy routing and CAPTCHA handling available at the infrastructure layer.

Debug with live view and replays

Inspect an active browser session while it runs, then review replay artifacts after the workflow finishes.

Deploy as browser functions

Move recurring Playwright workflows from local scripts into serverless browser functions when they need scheduled or callable deployment.

Local Playwright vs Playwright on Notte

Use caseLocal PlaywrightPlaywright on Notte
Development scriptsBest defaultUseful for parity with production
Authenticated workflowsManual storage stateProfiles and credential vaults
Blocked or protected sitesDIY proxies and CAPTCHA handlingManaged proxies and CAPTCHA handling
Production deploymentOwn the browser fleetManaged cloud sessions and functions

Related resources

FAQ

Can Playwright connect to Notte?

Yes. Playwright can connect to a Notte cloud browser session over CDP, so your Playwright script controls a managed browser instead of a local Chromium process.

Why use Notte with Playwright?

Use Notte with Playwright when you need managed cloud sessions, persistent profiles, proxies, CAPTCHA handling, live debugging, replays, observability, file storage, or serverless deployment around an existing Playwright workflow.

Does Notte replace Playwright?

No. Playwright remains the automation library. Notte provides the browser infrastructure and production services around it.