Selenium RC (Remote Control)
Selenium RC is Selenium 1 — the original Selenium server-based automation tool that existed before Selenium WebDriver.
How it worked:
Test Script → Selenium RC Server → Browser (via JavaScript injection)
Selenium RC used a JavaScript core (Selenium Core) injected into the browser to control it — unlike WebDriver which communicates natively with browsers.
Key characteristics:
- ✓Selenium RC (Selenium 1) was the main Selenium project before WebDriver merged into Selenium 2
- ✓It relies on JavaScript for automation (browser-level JS injection)
- ✓It supports: Java, JavaScript, Ruby, PHP, Python, Perl, and C#
- ✓It supports almost every browser of its era (IE, Firefox, Chrome, Safari)
- ✓Selenium 1 is still actively supported but in maintenance mode only
Architecture:
Browser ← JavaScript Injection ← Selenium RC Server ← Test Script
Selenium RC limitations (why WebDriver replaced it):
- ✓Had to start a separate RC server process
- ✓JS-based automation had browser security restrictions (same-origin policy)
- ✓Slower than native WebDriver communication
- ✓Could not handle file uploads, native OS dialogs
- ✓Pop-up handling was limited
Selenium RC vs WebDriver:
| Feature | Selenium RC | Selenium WebDriver |
|---|---|---|
| Architecture | Server + JS injection | Direct browser communication |
| Speed | Slower | Faster |
| Browser support | Very broad | Modern browsers via drivers |
| Language support | Java, Python, Ruby, PHP, Perl, C# | Same + more |
| Pop-ups | Limited | Better (Alert API) |
| File upload | Difficult | Supported |
| Status | Maintenance mode | Current standard |
Selenium history:
- ✓Selenium 1 (RC) — Jason Huggins (2004), JS-based
- ✓Selenium 2 — Merged Selenium 1 + WebDriver (Simon Stewart''s project)
- ✓Selenium 3 — Dropped RC server, pure W3C WebDriver
- ✓Selenium 4 — W3C compliant, BiDi protocol, Selenium Grid 4
Key point: Selenium RC was the main Selenium project for a long time before the WebDriver merge brought up Selenium 2. It relies on JavaScript for automation and supports many programming languages.
