reuse-surface/registry/capabilities/capability.infotech.headless-browser.md
tegwick 64e167433d
Some checks failed
CI Smoke / host-smoke (push) Successful in 0s
ci / validate-registry (push) Failing after 2m14s
CI Smoke / container-smoke (push) Successful in 2s
Register headless browser reuse guidance and consumer examples
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a13502-3de4-7af3-a6ae-3ef26de4adec
2026-10-13 13:56:33 +02:00

10 KiB

id name summary owner status domain tags maturity external_evidence discovery availability relations evidence consumer_guidance promotion_history
capability.infotech.headless-browser Headless Browser Automation Headless browser automation with Playwright and Chromium for UI testing, screenshots and page extraction; recommended default based on existing whynot-design, coulomb-social, core-hub and frontend-patterns implementations. reuse-surface reviewed infotech
headless
browser
automation
playwright
chromium
testing
screenshots
extraction
firefox
webkit
selenium
puppeteer
discovery availability
current target confidence rationale
D3 D4 medium Inspected four implemented Playwright consumers and separated optional dependencies and plans from usage. No comprehensive alternatives benchmark.
current target confidence rationale
A2 A2 medium Existing JavaScript and Python source examples can be adapted in a consumer repo. This entry does not deliver a shared wrapper or hosted browser service.
completeness reliability
level confidence basis satisfied_expectations broken_expectations out_of_scope_expectations
C2 medium scope_vs_intent_and_consumer_expectations
Identifies implemented consumers, browser engines and source entry points.
Gives a scoped default recommendation and a practical trial procedure.
No shared package, standard configuration or consumer-independent trial receipt.
Exhaustive estate dependency inventory or comparative browser benchmark.
Managed browser service or mandatory estate-wide technology policy.
level confidence basis known_reliability_risks evidence
R2 medium consumer_quality_signals
Browser binaries and system libraries must match the selected Playwright version.
Existing examples contain application-specific fixtures and assumptions.
Browser launch and target-repo compatibility have not been tested by this registration.
satisfied_signals
frontend-patterns navigation-history records a completed Chromium/Firefox experiment.
intent includes excludes assumptions use_cases
Help a worker select and reuse existing headless browser tooling instead of independently introducing another automation stack.
Playwright automation with headless Chromium as the default starting point.
JavaScript UI tests, screenshots and page extraction examples.
Python visual-check example and Firefox experiment evidence.
Browser hosting, credential provisioning and permission to automate external targets.
Claims that a dependency declaration or a workplan proves executed browser usage.
The consumer chooses a version compatible with its runtime and installs matching browsers.
Find which working repos already use a headless browser and where to start reusing it.
Run a local UI assertion and screenshot in a target repo before adopting the tooling.
current_level target_level current_artifacts consumption_modes
A2 A2
../whynot-design/playwright.config.mjs
../whynot-design/tests/visual/ui-kit.spec.mjs
../coulomb-social/scripts/test-usecase-browser.mjs
../core-hub/scripts/check_console_visual.py
../frontend-patterns/research/experiments/navigation-history/experiment.mjs
informational
source adaptation
JavaScript library
Python library
depends_on supports related_to
documentation tests consumer_feedback
https://playwright.dev/docs/browsers
../frontend-patterns/research/experiments/navigation-history/README.md
../test-driver/SCOPE.md
../testdrive-jsui/pyproject.toml
../whynot-design/tests/visual/ui-kit.spec.mjs
../coulomb-social/scripts/test-usecase-browser.mjs
../core-hub/scripts/check_console_visual.py
../frontend-patterns/research/experiments/navigation-history/result.json
recommended_for not_recommended_for known_limitations
Use Playwright with headless Chromium for a new repo's general UI automation trial.
Reuse whynot-design for JavaScript visual tests and core-hub for Python visual checks.
Reuse coulomb-social for JavaScript browser scripts and frontend-patterns for multi-engine experiments.
Treating this recommendation as an approved mandatory estate standard.
Selecting test-driver as an implemented JavaScript-capable browser engine.
Introducing Selenium or Puppeteer merely because their names match a discovery query.
This is a dated source inspection; run the target-repo trial before claiming adoption success.
Firefox is evidenced in frontend-patterns; WebKit is supported upstream but unverified in this inspection.
Selenium is an optional testdrive-jsui dependency, not verified execution; Puppeteer has no verified example here.

Headless Browser Automation

Recommendation

Start with Playwright controlling headless Chromium for general browser automation, UI tests, screenshots and JavaScript-rendered page extraction. This follows implemented usage in four working repos. Playwright is the automation library; Chromium is the browser engine. Use @playwright/test for a JavaScript test suite, the playwright library for standalone JavaScript scripts, or Python playwright when the consumer is Python.

This is a reuse recommendation reviewed against source on 2026-10-13, not a mandatory estate standard or a benchmark verdict against Selenium/Puppeteer. reuse-surface maintains this discovery record; the example repos maintain their implementations and the upstream Playwright project maintains the library.

Existing implementations

Paths in frontmatter are relative to the reuse-surface repository root. The links below work with sibling checkouts. The cited files were clean at these revisions.

Repo and inspected revision What is implemented Reuse starting point
whynot-design — a79a4d803e9aed13f66d072bf409b6f86000f01f Playwright Test, explicitly headless Chromium, screenshot comparisons Configuration, visual tests, dependency/scripts
coulomb-social — 5c32757b987ab1610cdb46a808d56c75f569f581 JavaScript Playwright scripts launching headless Chromium for browser tests and extraction Use-case test, script dependency
core-hub — a69ad325271485afe284a6db85673dfa30d9d4ad Python synchronous Playwright visual checks launching Chromium with the default headless mode Visual-check script, development dependency
frontend-patterns — 047a6a2d314ff5a9d2a87d5bc987d7d84835f682 Playwright experiments using Chromium and Firefox, with retained execution receipts Runner, setup and limitations, result

These are source/retained-receipt observations, not newly executed test results. The frontend-patterns example uses an explicit Chromium binary override; do not copy its workstation paths as a portable browser installation recipe.

Alternatives and misleading matches

  • Selenium: testdrive-jsui's optional development dependencies declare it at 701341d7fa520f860245e28eb16d44b767fd116b. A declaration alone does not establish an implemented or passing browser workflow.
  • test-driver: SCOPE.md at c3ad06e598057862cf500cbd46c7c8b6f83885ed explicitly excludes a browser engine, JavaScript execution, screenshots and DOM timing. Historical Playwright plans are not an available implementation.
  • Puppeteer: no verified implementation was found in this inspection. This is not a claim that every working repo has been exhaustively searched.
  • Firefox/WebKit: Playwright supports both upstream. Firefox has retained experiment evidence here; WebKit has no verified local example in this record.

Practical trial for the consuming worker

  1. Query this checkout with python3 -m reuse_surface.cli query --keyword browser from the reuse-surface root, then open this entry. If the CLI is installed, reuse-surface query --keyword browser is equivalent. plan-check --intent "headless browser" --no-llm also includes this candidate, but its token-overlap thresholds and maturity tie-breaking currently return new for this short query. That verdict does not establish absence of reuse; use the explicit keyword query and read the evidence for this trial.
  2. Pick the example matching the target repo's language and task. Inspect its fixture/server assumptions before adapting the smallest useful test or script.
  3. Use the target repo's package manager and lockfile. Select a compatible Playwright version and install its matching Chromium binary. For an installed Node dependency, use npx playwright install chromium; for an installed Python dependency, use python -m playwright install chromium in its environment. Follow the upstream browser/system-dependency instructions if system libraries are missing. No common estate version is established here.
  4. Against a local fixture or the target repo's local development server, launch headless Chromium, load one page, assert one meaningful rendered element or interaction, save a screenshot if relevant, and close the browser. Exercise a JavaScript-driven change if JavaScript rendering is the reason for adoption.
  5. Report the consumer repo, reference example, package/browser versions, exact command, assertion outcome, artifact paths and any setup failure. The trial remains unverified until this evidence exists; installation alone is not success.

The hosted service reads published repository indexes. A local edit does not by itself make this entry available at reuse.coulomb.social; use the local query above for an unpublished trial and verify the hosted entry after publication.