mrkeyoor.com_
Tue 10 Nov 23:47 UTC
Automationevaluationupdated 01 Nov 2026

midscene review

Trial Midscene.js when a test needs to act on visible controls or check appearance through screenshots. It can add visual steps to an existing test framework, so adopting it need not mean replacing your suite. Our run on October 2, 2026, at commit 1c2d8f7 assessed repository setup and command outcomes; it did not verify model-driven application workflows.

+59stars / 7d
Verdict

Trial Midscene.js for one visual action or assertion that your existing suite handles poorly. Our October 2, 2026 run at commit 1c2d8f7 installed successfully, but the subsequent build reused cached tasks and the test command failed. Keep adoption conditional on repeated application workflows and report inspection, neither of which our sandbox record establishes.

We ran it

Lab card: what happened when we ran midsceneScreenshot of midscene (midscenejs.com)
Install✓ · 395s2253 packages · 2186 MB
Build✓ · 19s
Tests✗ · 220s388 passed · 0 failed of 388 (vitest)
Repo2553 files~359,547 lines of source · 110.6 MB · 15 CI workflows

Answers from our run

Does midscene build from source?

Dependencies installed in 395 seconds (2253 packages), and the build succeeded in 19 seconds. We cloned commit 1c2d8f7 into a clean Debian container with 3 CPUs and no project-specific setup.

Do midscene's tests pass?

No. The project's own test command finished in 220 seconds and reported 388 passed, 0 failed (vitest).

Who should not use midscene?

Teams requiring demonstrated application reliability before adoption: our run does not supply that evidence.

What are the alternatives to midscene?

Playwright, Stagehand. Trial Midscene.

Setup2/5Installation succeeded in 395 seconds with 2,186 MB of dependencies, but the test command exited 1. The later build reused cached tasks. This meets the visible rubric's substantial-footprint or unresolved-command-failure level.
Docs4/5The supplied documentation includes model configuration, platform setup, framework guides, API references, report processing, and debugging material. We did not independently follow every platform guide.
Community5/5The visible rubric rates participation resources only. The README lists Discord and Lark discussion routes and several community extensions; adoption, response times, and support quality remain unassessed.
Maturity3/5Released integrations and reporting are documented, but the measured README labels Midscene Test Beta and our test command failed. Application workflows and operational reliability were not verified.

Who it’s for

Test authors evaluating screenshot targeting for canvas content, custom controls, or cross-origin iframes.
Playwright or Puppeteer users adding visual actions and assertions to existing tests.
Mobile and desktop teams prepared to configure a model and platform control tools.
Contributors willing to investigate the failed repository test target.

Who it’s NOT for

Teams requiring demonstrated application reliability before adoption: our run does not supply that evidence.
Projects unable to approve screenshot processing through their chosen model configuration.
Contributors expecting a small installation: our sandbox recorded 2,253 dependency packages occupying 2,186 MB.
Pipelines requiring a successful repository test command on the measured commit.
Accessibility audits that need semantic evidence beyond visible appearance.

Setup reality

Our run on October 2, 2026, used commit 1c2d8f7 in our sandbox with lab-node:22, 3 CPUs, and 8 GB RAM. Installation succeeded in 395 seconds, recording 2,253 dependency packages and 2,186 MB on disk. Preparation builds ran during installation. The subsequent build command exited 0 in 19 seconds, with Nx reusing cached output for all 28 build tasks.

The test command exited 1 after 220 seconds. The attached stored parser summaries record 388 passed, 0 failed, and 0 skipped tests. These are not verified exhaustive counts of unique tests. Nx identified @midscene/web:test as a failed task; separate raw suite output includes skipped cases and bail-limit messages. Those messages do not replace the stored parser fields, and skipped cases are not failures.

The harness stores command success, exit code, elapsed time, timeout status, and log tails separately from parsed test counts. This correction uses the existing record without a new execution. It does not establish a completed model-driven browser or device workflow, CLI deployment, action accuracy, or runtime speed. Audit results and scan coverage are unknown.

Should you add Midscene.js to an existing suite?

Use a focused pilot when a visible control or expected appearance is difficult to express with your current automation. Midscene.js uses screenshots to decide where to interact and whether the interface meets an expected result. The README at our measured commit describes targeting icon-only buttons, custom controls, canvas content, and cross-origin iframe elements without selectors. These are documented capabilities; our sandbox did not test those workloads.

The same README supports combining Agent APIs with existing code, fixtures, and assertions through Playwright or Puppeteer. Start with one visual step in an established test rather than treating the framework's advertised platform coverage as verified coverage of your application.

What our sandbox established

Our run took place on October 2, 2026, at commit 1c2d8f7. Installation succeeded in 395 seconds and recorded 2,253 dependency packages occupying 2,186 MB. That is the repository installation footprint, not the size of a deployed application or a measurement of model inference cost.

The later build command returned zero in 19 seconds, but Nx reused cached output for all 28 tasks. Installation had already performed preparation builds. The later command therefore does not demonstrate a fresh compilation in 19 seconds.

The test command exited 1 after 220 seconds. The attached stored parser summaries record 388 passed, 0 failed, and 0 skipped tests. Those fields do not establish exhaustive unique coverage or override the command's failure. The harness records command outcomes separately from parsed counts, so a nonzero exit can coexist with a parser summary containing zero failed cases.

Nx named @midscene/web:test as a failed task. Separately, the raw tail contains other suite footers, skipped cases, bail-limit messages, and a report-assembler version-mismatch message. We have not summed those footers or substituted them for the attached parser summary. The supplied tail does not establish the underlying cause of the failed target; it also does not establish that the version-mismatch message caused it.

The record does not demonstrate a configured-model browser or device workflow, application deployment, visual accuracy, or runtime speed. No audit result is recorded, and scan coverage is unknown. The MrKeyoor testing-methodology page explains the publisher's command and parser reporting. It was retrieved after this run and does not establish which methodology revision governed the October execution.

What a useful pilot still needs

The measured-commit README requires model configuration before its Playwright example can run. It describes self-hosted model options and optional DOM inclusion for extraction and page understanding. Its screenshot-based assertions assess visible results; they do not establish accessibility semantics.

Choose one workflow your current suite handles poorly. Record the commit, model identifier, configuration, viewport, and platform. Repeat the workflow through loading states and ambiguous controls, then compare the resulting application state with the generated report. These are recommended checks, not work completed by our sandbox.

The measured README labels Midscene Test as Beta and describes YAML cases with reusable TypeScript Nodes for API calls, preparation, and cleanup. Current documentation describes additional framework capabilities. Keep those current descriptions separate from what the dated checkout and command record establish.

Which alternatives fit the job?

Playwright Test runs tests across Chromium, Firefox, and WebKit with browser isolation, auto-waiting, and web-first assertions. Choose it for browser checks you can express through locators and browser APIs. It can also complement Midscene: the measured README supports adding visual Agent APIs to an existing testing framework. The supplied Playwright repository establishes that browser-testing role, without proving a speed or cost advantage in your application.

Stagehand provides browser-agent APIs for actions, observation, and structured extraction. Consider it for browser-agent tasks using a local browser or Browserbase. The supplied Stagehand repository supports those roles; it does not establish Stagehand as a replacement for Midscene's mobile and desktop testing integrations.

What the ratings mean

These editorial ratings describe the supplied evidence, not benchmark results. Setup ease uses 1 for blocked installation, 2 for installation with substantial footprint or an unresolved command failure, 3 for completed basic setup, 4 for a verified application workflow, and 5 for verified setup across advertised targets. Our installation and failed test command support 2.

Documentation uses 1 for missing entry guidance, 2 for an introduction, 3 for setup and API guidance, 4 for those plus platform and debugging material, and 5 for independently followed guidance across targets. The supplied documentation supports 4; we did not follow every platform guide.

Community rates visible participation resources only: 1 means none supplied, 2 a contact route, 3 discussion and contribution routes, 4 those plus extensions, and 5 multiple discussion routes and several listed community extensions. The README supports 5 on this narrow rubric. Adoption, response times, and support quality remain unassessed.

Maturity uses 1 for a concept, 2 for an experimental implementation, 3 for released integrations with unresolved verification limits, 4 for verified target workflows, and 5 for sustained operational evidence. Documented integrations, the Beta framework label, and our failed test command support 3. This rating does not establish production reliability.

Alternatives

ProjectWhat it isPick it when
Playwright gh↗A web automation and testing framework with locators, browser isolation, auto-waiting, and retrying assertions.Choose it for browser tests expressed through locators and browser APIs. It can also host Midscene visual steps, making it a complement as well as an alternative.
Stagehand gh↗A browser-agent SDK with action, observation, and structured extraction APIs.Consider it for browser-agent tasks using local browsers or Browserbase. The supplied evidence does not establish a replacement for mobile or desktop testing.

What people are saying

  1. [github-trending] web-infra-dev/midscene

Sources

  1. Midscene repository
  2. Midscene documentation
  3. Midscene v1.12.0 release
  4. v1.12.0 HTML report data bug
  5. Android scrcpy upload memory fix
  6. WebP screenshot input change

More automation reviews

hummingbot · spotify-downloader · bbot · switch · Horizon · ai-goofish-monitor · the whole board →