Q1 of 48 · Cypress
What makes Cypress different from Selenium?
Short answer
Short answer: Cypress runs in the same browser process as your app, giving direct DOM access, automatic waits, and time-travel debugging. Selenium drives the browser remotely via WebDriver, which is more flexible but slower and less debuggable.
Detail
Architecturally, Cypress and Selenium sit at opposite ends of the spectrum. Selenium uses the W3C WebDriver protocol — a separate process sends commands over HTTP to a browser driver, which translates them into browser actions. This gives you cross-language support (Java, Python, C#, JS, Ruby), parallel grid execution, and broader browser coverage including Safari and IE/Edge legacy.
Cypress runs inside the browser as JavaScript, with the same access to the DOM and network as your application. That architecture unlocks four big wins: automatic waiting and retry-ability, network stubbing without a proxy, time-travel debugging via the command log, and synchronous-feeling assertions. The trade-off: you're locked into JavaScript/TypeScript, you historically can't drive multiple tabs or origins natively (improved in 12+), and very long runs can hit memory limits.
The honest framing for an interview: pick Cypress for fast iteration and developer experience on a JS/TS codebase; pick Selenium when you need polyglot teams, true multi-browser/multi-tab scenarios, or deep grid scaling. Playwright sits between them and is the more interesting comparison for greenfield decisions in 2025+.