Careeroza
Selenium 4 Architecture
How a Command Travels
Your Java test
driver.findElement(By.id("email")).sendKeys("[email protected]")
|
| Selenium Java client library turns it into an HTTP request (JSON)
v
POST /session/{id}/element/{elementId}/value {"text":"[email protected]"}
|
v
Browser driver (chromedriver / geckodriver / msedgedriver)
|
| native browser automation
v
Real browser (Chrome / Firefox / Edge) types into the email boxThe W3C WebDriver Protocol
In Selenium 4 the client and the driver talk using the W3C WebDriver standard, an official web standard that every browser vendor implements. Earlier versions used the "JSON Wire Protocol" and needed translation. Being a standard means fewer browser differences and more stable tests.
| Part | Who makes it |
|---|---|
| Selenium client (selenium-java jar) | Selenium project |
| chromedriver | |
| geckodriver | Mozilla |
| msedgedriver | Microsoft |
| safaridriver | Apple (built into macOS) |
Note: Selenium 4 also adds WebDriver BiDi (a two-way channel for console logs and network events). You will see it in the advance level.