Selenium is some browser automation toolkit from 2004. Jason Huggins built it at ThoughtWorks because clicking through web forms manually was driving everyone insane. Now it's everywhere because it was first to market and migrating existing test suites would cost more than anyone wants to think about.
The Selenium Suite: Four Components (Sort Of)
OK, so Selenium isn't actually one tool - it's like four different things that are supposed to work together:
WebDriver - The One Everyone Actually Uses
WebDriver is the main thing you'll actually interact with. It's supposed to talk to browsers through their native APIs, which works fine until Chrome decides to update and your entire test suite starts throwing weird errors.
The W3C WebDriver standard supposedly fixed browser compatibility issues, though in practice you'll still hit browser-specific quirks regularly. You can write tests in Java, Python, C#, Ruby, or JavaScript - pick whichever one your team hates least this month.
What works:
- Clicks buttons, fills forms, finds elements
- Works in headless mode for CI/CD
- Supports modern web shit like shadow DOM and relative locators
- Integrates with Chrome DevTools Protocol for debugging
What doesn't work (and will ruin your day):
- StaleElementReferenceException will haunt your dreams - elements disappear the moment you try to click them
- Tests run slower than your patience can handle, especially compared to modern tools like Playwright
- Element not found errors that make zero sense even when you can clearly see the fucking element right there
- File upload dialogs still require OS-level workarounds that break half the time
- Timing issues everywhere - too fast and elements aren't ready, too slow and tests take forever
Grid - For When One Slow Test Suite Isn't Enough
Selenium Grid is supposed to let you run tests on multiple machines simultaneously. In theory, this speeds things up. In practice, you'll spend way more time debugging Grid node connectivity problems and version mismatches than you save on parallel execution.
Grid 4 has some web UI that shows you all your failing tests in real-time, which is either helpful for debugging or just depressing when you realize how broken everything is. Docker support means you can at least containerize your suffering and make it reproducible.
The setup is still a pain - half the time nodes don't register properly, and the other half they lose connection for no apparent reason. There's extensive troubleshooting docs which should tell you something about how often this breaks.
IDE - Record and Playback Tool
Selenium IDE is a browser extension that records your clicks and generates test code. It's useful for prototyping and demos. The generated code requires significant refactoring for production use.
Manager - Automatic Driver Management
Selenium Manager automatically downloads and manages browser drivers. This solved the biggest pain point - manually updating ChromeDriver every time Chrome updated.
Current Version: 4.35.0 (as of August 2025)
The latest Selenium version is 4.35.0 as of August 2025. They release updates every few weeks, so check the downloads page for whatever's newest. The release notes mention better BiDi support and Grid stability fixes, though "stability" is relative with Grid.
What's new:
- BiDi APIs for two-way browser communication
- Improved relative locators
- Modern Grid interface
- Better Chrome DevTools integration
Why Companies Keep Using Selenium
Investment Protection: We have 847 Selenium tests that took 3 years to write. Migrating to Playwright means rewriting everything and convincing management it's worth the cost. Nobody wants to be the guy who suggests throwing away 3 years of work.
Universal Browser Support: Selenium works everywhere - Chrome, Firefox, Safari, even Internet Explorer that some enterprise client refuses to upgrade. Yes, IE testing is still a thing in 2025.
Language Flexibility: Write tests in Java, Python, C#, Ruby, or JavaScript. Teams can use their existing language skills rather than learning JavaScript-only tools.
Mature Community: Stack Overflow has 180k+ Selenium questions because everyone runs into the same problems. That's either reassuring or terrifying, depending on your perspective.
Open Source: Apache 2.0 license means it's free as in beer. The hidden costs come from developer time debugging flaky tests and CI compute time waiting for slow test suites.