playwright vs midscene
Two of the top projects in Code review and testing, side by side: who leads on each score part and who each one suits, then setup, license, activity and what each review found.
playwright
Cross-browser automation and end-to-end test framework for Chromium, Firefox and WebKit
midscene
Vision-based E2E testing in natural language for web, mobile and desktop
Verdict
playwright ranks higher, 94 to 87. Of the 4 score parts we measure for both, playwright leads on 2, midscene on 1 and 1 is even.
- Adoptionplaywright leads by 25 points, 99 to 74: a wide gap.
- FreshnessEven at 100.
- Maintenanceplaywright leads by 6 points, 99 to 93.
- Agent-readymidscene leads by 25 points, 70 to 45: a wide gap.
Pick playwright if you are
Engineers writing browser tests or automation, or giving agents browser access
- One API covers Chromium, Firefox and WebKit on Linux, macOS and Windows, headless or headed
- Test runner has auto-waiting, retrying assertions, per-test browser contexts and parallel execution
Pick midscene if you are
QA and frontend engineers writing E2E tests for web, mobile or desktop apps
- Locates elements from screenshots, so canvas, icon-only buttons and cross-origin iframes need no selectors
- Same agent API across web, Android, iOS, HarmonyOS and desktop
| What we compare | playwright | midscene |
|---|---|---|
| Score parts, out of 100 | ||
| Adoption | 99, widely used | 74, popular |
| Momentum | Not scored for this kind | Not scored for this kind |
| Freshness | 100, active | 100, active |
| Maintenance | 99, healthy | 93, healthy |
| Agent-ready | 45, minimal | 70, partly |
| Facts from GitHub and the README | ||
| Stars | 99.9k | 15.6k |
| License | Apache-2.0 (permissive) | MIT (permissive) |
| Last commit | Nov 2026 | Nov 2026 |
| Last release | Nov 2026 | Nov 2026 |
| Language | TypeScript | TypeScript |
| Docker | No | No |
| GPU | Not needed | Not stated |
| arm64 or Apple Silicon | Not stated | Mentioned |
playwright
Playwright drives Chromium, Firefox and WebKit through one API, used for end-to-end tests with the Playwright Test runner, for standalone scripts such as screenshots, PDFs and scraping, and as a browser tool for AI agents. The agent paths are a CLI for coding agents and an MCP server that exposes pages as accessibility snapshots. Bindings exist for TypeScript/JavaScript, Python, .NET and Java.
Who it is for: Engineers writing browser tests or automation, or giving agents browser access
Strengths
- One API covers Chromium, Firefox and WebKit on Linux, macOS and Windows, headless or headed
- Test runner has auto-waiting, retrying assertions, per-test browser contexts and parallel execution
- Trace Viewer records DOM snapshots, network requests and console logs; VS Code extension adds codegen
- Agent tooling: MCP server uses accessibility snapshots, so no vision model is needed
Weaknesses
- Browser binaries must be downloaded separately with `npx playwright install`
- MCP server and CLI live in separate repos, not in this one
- Agent features are secondary; the core is a testing and automation library
- no GPU
- Needs Node.js, Browser binaries via npx playwright install
midscene
Midscene.js drives web, Android, iOS, HarmonyOS and desktop UIs from screenshots using a vision model, so tests are written as natural-language steps and assertions instead of selectors. Tests can be YAML cases run by Midscene Test (@midscene/test) or agent calls such as aiAct and aiAssert inside Playwright, Puppeteer, Vitest or Rstest. It produces HTML reports with screenshots and the model's decisions.
Who it is for: QA and frontend engineers writing E2E tests for web, mobile or desktop apps
Strengths
- Locates elements from screenshots, so canvas, icon-only buttons and cross-origin iframes need no selectors
- Same agent API across web, Android, iOS, HarmonyOS and desktop
- Step-level HTML reports with screenshots, plus summary.json for scripts and AI agents
- Works with GPT, Qwen, Doubao, DeepSeek, Gemini, Kimi, including self-hostable models
Weaknesses
- Requires a configured vision-capable model; runs depend on model API calls or self-hosting
- Python and Java SDKs are community projects, not part of the main repo
- Assertions are model judgments, so results can vary between runs and models
- iOS needs WebDriverAgent and Android needs ADB, adding device setup
- Needs Vision-language model API or self-hosted model, Playwright or Puppeteer (web), ADB (Android), WebDriverAgent (iOS), HDC (HarmonyOS)
- Models: GPT, Qwen, Doubao Seed, DeepSeek, Gemini
More in Code review and testing
Building with these?
We help teams pick an open-source AI stack and run it in production. Client work never changes a rank.