CLOUD PLAYWRIGHT

Run Playwright in a cloud sandbox.

Spin up an isolated sandbox with Chromium already baked in, run a scrape or test script, and pull the results back — no browser download, no local install. A headless browser API your AI agents can call in one line.

$5 free credits · no card · Chromium baked in, no browser download

scrape.py — Chromium ready, no download
$ pip install pilldrops
$ python scrape_job.py

from pilldrops import Sandbox
with Sandbox.create(template="playwright") as sb:
    sb.upload("./scrape.py", "/scrape.py")
    r = sb.run("python /scrape.py")
    print(r.stdout)                # scraped 128 rows
    sb.download("/out", "./results")  # traces, pngs, json
✓ chromium baked · sandbox ready in 180ms · results in ./results
chromium
baked in
preview URL
watch it live
trace + video
capture built in
per-sec
billing
$5
free credits
[01] — Full sandbox / not just a browser

A real machine around Chromium.

Serverless browser APIs hand you a page and nothing else. The playwright template gives you a full dedicated microVM — a real Chromium, a real filesystem for artifacts, and a public URL to watch the run live.

⬢

Real Chromium, baked in

The playwright template ships Chromium and the Playwright runtime pre-installed. No playwright install, no download wait, no missing system libraries.

▤

Full filesystem for artifacts

Write screenshots, PDFs, HAR files and scraped JSON anywhere on disk, then sb.download("/out","./results") pulls the whole directory back to your machine.

◉

Public preview URL

Launch a headed browser or a live viewer and open sb.url to watch the automation run in real time — handy for debugging flaky selectors. App preview guide →

◷

Trace + video capture

Playwright's tracing and video recording work out of the box. Save the trace.zip to disk, download it, and open it in the Playwright trace viewer locally.

[02] — Scrape, fill, test / headless or headed

Drive a page, then take the artifacts.

Write an ordinary Playwright script — headless by default, or headed when you want the preview URL — and run it inside the sandbox. Everything it writes to disk comes back with one download.

STEP 01

Scrape to JSON

Load a page, pull the data you need, and dump it to /out.

# scrape.py — runs inside the sandbox
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
    b = p.chromium.launch()          # baked in
    pg = b.new_page()
    pg.goto("https://example.com")
    pg.screenshot(path="/out/home.png")
headlessscreenshotsjson
STEP 02

Fill + test, watch it live

Run headed, then open sb.url to watch the form fill in real time.

with Sandbox.create(
    template="playwright", ports=[9222]) as sb:
    print(sb.url)              # watch live
    sb.upload("./flow.py", "/flow.py")
    sb.run("python /flow.py").check()
    sb.download("/out", "./results")
headedpreview URLtrace
Full browser guide →
[03] — End-to-end testing / browser + mobile in CI

From scrape script to full E2E suite.

The same sandbox that scrapes runs your end-to-end tests. Point pilldrops test at a suite and it drives real browsers — and Android 14 emulators — with traces and video you can download when something fails.

browser + mobile E2E in one command
$ pilldrops test ./suite.sh        # browser + mobile E2E
→ spinning up playwright template (chromium baked)
✓ login.spec         12 passed
✓ checkout.spec       8 passed
✓ android/onboarding  5 passed  (Android 14 emulator)
✓ 25 passed · traces + video saved to ./results
CHROMIUM READY

Ship a Playwright script. Skip the setup.

One call spins up the playwright template with Chromium baked in, runs your scrape or test, and hands back every artifact it wrote. Per-second billing, trace + video capture, $5 free credits — no card.