Discovery
Playwright screenshot, HAR trace, or user script on one URL
Screenshot, HAR trace, or a user script after the page actually renders.
overview
What playwright does
You have a URL that httpx already marked live, but the useful part is what the browser paints: a login form, a Cloudflare interstitial, or an SPA that stays empty until JavaScript runs. Set --url and leave --mode at screenshot. Chromium, Firefox, or WebKit loads the page, then the node writes screenshot.png, the rendered page.html, and meta.json with status, title, final URL, and elapsed time. That folder is the artifact the next node reads.
Need the network and console too? Switch --mode to trace and the same run also writes network.har, console.log, and a Playwright trace.zip. Need clicks, a login, or a multi-step scrape? Set --mode script and pass --script a JS file that exports a function. The wrapper calls it with page, context, browser, and the output folder. --stealth is on by default and patches navigator.webdriver plus Chromium launch flags. Tune --viewport, --timeout, --user-agent, --locale, and --timezone when the default fingerprint is wrong.
Feed one URL into the playwright node after a liveness probe. Use gowitness or httpx-screenshot when you have a file of hosts and only need pictures. Use httpx when status and headers are enough. Reach for playwright when the next step needs a rendered page, a HAR, or a script you control.
use cases
Where playwright fits
Confirm what a live host actually paints
Open --url after a probe and keep a full-page PNG plus rendered HTML so a login wall, SPA, or error page is visible instead of a status line.
Keep a HAR and console for one host
Set --mode trace to store network.har, console.log, and trace.zip next to the screenshot so you can replay what the browser fetched.
Run a bounded browser script
Point --mode script and --script at a JS file that exports a function. The wrapper hands it page, context, and the output folder on the fleet.
Match locale, timezone, and user agent
Set --locale, --timezone, and --user-agent when the page changes by market or blocks a default headless fingerprint.
reference
playwright inputs and flags
| Name | Type | Flag | Description |
|---|---|---|---|
| url | STRING | --url | Target URL. Required for screenshot and trace. |
| mode | STRING | --mode | screenshot (default), trace, or script. |
| script | FILE | --script | User Playwright JS file. Required when mode is script. |
| browser | STRING | --browser | chromium (default), firefox, or webkit. |
| stealth | BOOLEAN | --stealth | Anti-detection patches and Chromium flags. Default true. |
| viewport | STRING | --viewport | Viewport as WIDTHxHEIGHT. Default 1280x720. |
Showing key inputs. playwright exposes 12 inputs in total.
Full flag reference (12 inputs)
| Name | Type | Flag | Description |
|---|---|---|---|
| url | STRING | --url | Target URL to navigate to. Required for screenshot and trace. |
| mode | STRING | --mode | screenshot (default), trace (HAR, console, trace.zip), or script (user JS). |
| script | FILE | --script | User Playwright JS file. Only used when mode is script. |
| browser | STRING | --browser | chromium (default), firefox, or webkit. |
| headed | BOOLEAN | --headed | Show a browser window. Default false. Leave off on the fleet. |
| timeout | STRING | --timeout | Navigation timeout in milliseconds. Default 30000. |
| viewport | STRING | --viewport | Viewport as WIDTHxHEIGHT. Default 1280x720. |
| slow_mo | STRING | --slow-mo | Delay each action by N milliseconds. |
| stealth | BOOLEAN | --stealth | Patch navigator.webdriver and set Chromium flags. Default true. |
| user_agent | STRING | --user-agent | Override the User-Agent header. Default is modern Chrome on macOS. |
| locale | STRING | --locale | Browser locale. Default en-US. |
| timezone | STRING | --timezone | Browser timezone. Default America/New_York. |
example
Run playwright
# screenshot after JS loadplaywright --url https://example.com --mode screenshot --browser chromium # HAR + console + trace.zipplaywright --url https://example.com --mode trace{ "mode": "screenshot", "url": "https://example.com", "final_url": "https://example.com/", "status": 200, "title": "Example Domain", "elapsed_ms": 842, "browser": "chromium", "viewport": { "width": 1280, "height": 720 }, "headed": false, "error": null}guidance
Choosing playwright
Use playwright when you need one rendered page, a HAR and trace.zip, or a script you control. Use gowitness when you have a file of hosts and only need Chrome pictures. Use httpx-screenshot when probe metadata and a gallery should stay one step. Use httpx when status and headers are enough.
gowitness
Headless Chrome screenshots from a file of hosts. Faster for bulk visual triage. No Playwright traces, no user scripts, no Firefox or WebKit.
httpx-screenshot
Probes a host list and saves a picture of each live page. Pair when you want status, title, and a gallery in one step.
httpx
Headers, status, title, and tech without a browser. Use it first, then send only the hosts that need a render to playwright.
workflows
Workflows using playwright
Playwright Page Capture
Open one URL in Chromium, Firefox, or WebKit with playwright and keep a screenshot, rendered HTML, and meta.json, or a HAR and Playwright trace.
Playwright Webserver Capture
Feed a list of web servers to playwright. Each URL opens in Chromium, Firefox, or WebKit in parallel and keeps a screenshot, rendered HTML, and meta.json.
faq
playwright questions
related
More Discovery tools
apkurlgrep
Extract URLs and endpoints from Android APK files.
cariddi
Crawl a domain list and scan responses for endpoints, secrets, tokens, and juicy files.
crawlergo
Browser-driven crawler that harvests requests for downstream scanners.
dirsearch
Web path scanner.
fallparams
Crawl pages, harvest potential parameters, write a custom wordlist.
feroxbuster
Recursive content discovery with smart defaults and rich response filters.
Run playwright yourself
A URL feeds the playwright node. The folder holds screenshot.png, page.html, and meta.json, or a HAR and trace.zip when --mode is trace. The JSON sample below is illustrative for example.com, not a fleet run.
Facts on this page come from the live Trickest tool library.