Head to head · Browser automation · October 2026 research run
Puppeteer vs Selenium
Selenium scores 73.6 (BB) on agent readiness against Puppeteer's 70.6 (BB), and leads in 5 of 7 scored categories. Puppeteer leads on security & auth. Both do browser automation.
Best browser automation tools for AI agents · All 120 browser comparisons
Which one, for what
Puppeteer BB
Best for Agents that write and run Node.js scripts against Chrome or Firefox.
Ahead on
- Security & auth, 52 against 43
Watch for
No MCP server, CLI or llms.txt of its own. The docs point agents to the separate chrome-devtools-mcp project
Selenium BB
Best for Agents that write test or automation scripts in any of five languages, and teams with a Grid.
Ahead on
- Reliability, 90 against 80
- Schema & documentation, 89 against 81
- Maintenance & community, 94 against 89
Watch for
No MCP server from the project. The docs point to community servers and say they are third-party
Score by category
| Category | Weight this run | Puppeteer | Selenium | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 80 | 90 | Selenium +10 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 81 | 89 | Selenium +8 |
| Agent ergonomics | 13%16.2 | 67 | 70 | Selenium +3 |
| Security & auth | 14%17.5 | 52 | 43 | Puppeteer +9 |
| Payments & pricing | 10%12.5 | 60 | 60 | even |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 89 | 94 | Selenium +5 |
| Transparency & trust | 7%8.8 | 70 | 74 | Selenium +4 |
| Negative events | ≤15 | 0 | 0 | |
| Total | BB 70.6/100 | BB 73.6/100 |
Facts side by side
| Fact | Puppeteer | Selenium |
|---|---|---|
| Kind | SDK + MCP | SDK + MCP |
| Vendor | Selenium project (Software Freedom Conservancy) | |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | HTTP | |
| Auth | None | None |
| Pricing | Free | Free |
| x402 | no | no |
| Licence | Apache-2.0 | Apache-2.0 |
| Read-only variant documented | no | no |
| llms.txt | no | yes |
| Last release | 2026-10-08 | 2026-10-09 |
| Terms last updated | no document linked | no document linked |
| Privacy policy last updated | no document linked | no document linked |
| Customer content may train models | ||
| Terms restrict automated access | ||
| Terms restrict benchmarking | ||
| Terms or service can change without notice | ||
| Arbitration or class-action waiver | ||
| Popularity | 96k stars, 11.5M npm/wk | 35k stars, 1.8M npm/wk, 6.9M PyPI/wk |
Verdicts
Puppeteer
Puppeteer is a stable, Apache-2.0 library on 25.13.0, with ten releases since 27 July 2026, typed APIs, locators that wait and retry, and accessibility snapshots an agent can read. It has no MCP server or llms.txt of its own, and 10 of the 20 most recent CI runs on main failed between 7 and 13 October 2026.
Selenium
Selenium is stable, Apache-2.0 software on 4.51.0 with bindings in five languages, CI passing on trunk, an llms.txt and an agent guide added in September 2026. It has no MCP server of its own, Selenium Manager sends usage statistics by default, and Grid accepts unauthenticated sessions unless a username and password are set.
Before you call either
Puppeteer
- Install with
npm i puppeteer, which downloads a matching Chrome for Testing. Usepuppeteer-coreto bring your own browser - Prefer
page.locator()overpage.$(). Locators wait for the element to be visible and stable before acting - Read pages with
page.accessibility.snapshot({interestingOnly: true})rather than full HTML to keep output short - Catch
TimeoutErrorseparately fromTargetCloseError. The first can be retried, the second needs a new page or browser - Packages are ESM only since 25.0.0. Use
import puppeteer from 'puppeteer'rather thanrequire
Selenium
- Install with
pip install selenium(Python 3.10 or later) and let Selenium Manager fetch drivers. Do not set driver paths - Use
WebDriverWaitwith expected conditions, never fixed sleeps, and do not mix implicit and explicit waits - Set
SE_AVOID_STATS=trueto stop Selenium Manager sending usage statistics - Point coding agents at https://www.selenium.dev/llms.txt. Most Selenium 2 and 3 era examples use removed APIs
- Set
--usernameand--passwordbefore exposing a Grid beyond localhost. Checkhttp://localhost:4444/statusbefore creating sessions
Questions
Which is better for AI agents, Puppeteer or Selenium?
Selenium scores 73.6 (BB) on agent readiness against Puppeteer's 70.6 (BB), and leads in 5 of 7 scored categories. Puppeteer leads on security & auth.
Are Puppeteer and Selenium open source?
Yes. Puppeteer is open source (Apache-2.0). Selenium is open source (Apache-2.0).
Other comparisons with Puppeteer or Selenium
- agent-browser vs Puppeteer
- agent-browser vs Selenium
- Airtop vs Puppeteer
- Airtop vs Selenium
- Anchor Browser vs Puppeteer
- Anchor Browser vs Selenium
- Browser Use vs Puppeteer
- Browser Use vs Selenium
- Browserbase vs Puppeteer
- Browserbase vs Selenium
- Browserless vs Puppeteer
- Browserless vs Selenium
- Chrome DevTools MCP vs Puppeteer
- Chrome DevTools MCP vs Selenium
- Hyperbrowser vs Puppeteer
- Hyperbrowser vs Selenium
- Notte vs Puppeteer
- Notte vs Selenium
- Playwright MCP vs Puppeteer
- Playwright MCP vs Selenium
- Puppeteer (archived MCP reference server) vs Selenium
- Puppeteer vs Puppeteer (archived MCP reference server)
- Puppeteer vs Skyvern
- Puppeteer vs Steel
- Puppeteer vs TinyFish
- Selenium vs Skyvern
- Selenium vs Steel
- Selenium vs TinyFish
Machine-readable
- This page as Markdown
/compare/puppeteer-vs-selenium.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/puppeteer.json·/api/v1/tools/selenium.json - From a terminal
anchor compare puppeteer selenium(the CLI) - Over MCP
compare_tools {"a": "puppeteer", "b": "selenium"}at/mcp, no key