4.2The Three Eras of Browser Automation
Era 1: Selenium (2004–2018)
Selenium defined the space. It introduced the WebDriver protocol — a W3C standard where test code sends HTTP+JSON commands to a driver process, which commands the browser. Every interaction is an HTTP round-trip.
Test Code --(HTTP/JSON)--> ChromeDriver --(DevTools Protocol)--> Chrome
This architecture brought cross-browser, cross-language automation to the industry. It also brought inherent latency, flaky waits, and a maintenance burden that scaled poorly.
Era 2: Direct Protocol Tools (2017–2020)
Puppeteer (2017) proved that connecting directly to Chrome's DevTools Protocol over a persistent WebSocket was dramatically faster and more reliable. Cypress (2017) took a different approach by running inside the browser itself. Both sacrificed Selenium's breadth for speed and developer experience.
Era 3: Playwright (2020–Present)
Playwright, built by the team that created Puppeteer, combined the best of all approaches: direct protocol connections to Chromium, Firefox, and WebKit, with a unified API, auto-waiting, and built-in test infrastructure. It has become the default choice for new projects.