This article will discuss new features in Selenium WebDriver 4. These include, among others, the W3C WebDriver protocol, a better Selenium Grid, and a new Selenium IDE.
What’s new in Selenium WebDriver 4?
Selenium 4 is the latest version of the most widely used open-source test automation framework for web tools.
- W3C WebDriver Protocol: Selenium 4 WebDriver is mainly completely W3C standardized. The WebDriver API now helps with more than just Selenium. Most of the automation tools are based on it, including some internal ones. Selenium 4 tests do not encode or decode API calls. They will directly interact via the W3C Protocol.
- Improved Selenium Grid: Selenium 4 features support Docker, making the usage of containers set up and scale easier. It shows the difference between selenium 3 and 4 via TOML config files. It allows HTTPS connections and supports IPv6 addresses.
- Enhanced Selenium IDE: Download Chrome support for Selenium IDE from their site. Selenium IDE is a more advanced record and playback tool. This includes a new plugin system. This new NodeJS CLI runner supports WebDriver playback and parallel runs. It provides key metrics on test case pass and fail rates.
- Improvements to Selenium Manager: It has a new interface and advanced queries. Plus, it has real-time monitoring. These improvements give control to the tester. They ensure a seamless, efficient, automated test.
- Actions Class Changes: Selenium 4 updates the actions class. It is for complex end-user interactions during execution. Like when you work with the keyboard and mouse clicks. The new usage of the Actions class in Selenium 4 offers new ways to model mouse and keyboard input on Web elements.
This Selenium Training will cover deprecated features, Selenium 3 vs 4, and a guide to upgrade.
What is deprecated in Selenium 4?
This is one of the most asked Selenium interview questions. Some features and classes are deprecated in Selenium 4 to reflect the advancement. Selenium 4’s new features have boosted browser automation. The tools are getting close to ensuring compatibility with modern web standards.
- Driver Constructors: This class is now deprecated. Use the Options classes at a browser level instead. This shift enables finer control over browser settings. Here are the following changes listed below:
- Capabilities
- Replaced by
- FirefoxDriver
- FirefoxDriver FirefoxOptions
- ChromeDriver
- ChromeDriver ChromeOptions
- InternetExplorerDriver
- InternetExplorerDriver InternetExplorerOptions
- SafariDriver
- SafariDriver SafariOptions
- EdgeDriver
- EdgeDriver EdgeOptions
- Fluent Wait: The old configuration system of Hub and Node has been simplified. Selenium 4’s Grid has a friendlier interface with autodiscovery for easy setup. Some of the legacy methods that used to rely on Grid management have since been deprecated.
Method
Selenium (Earlier Versions)
Selenium 4 (Updated)
pollingEvery()
Accepted two parameters: time (long) and unit (TimeUnit)
Accepts a single parameter: Duration (in seconds, milliseconds, nanoseconds, etc.)
withTimeout()
Accepted two parameters: time (long) and unit (TimeUnit)
Accepts a single parameter: Duration (in seconds, milliseconds, or nanoseconds).)
- FindsBy: The findElements(By) method now handles exceptions better. Changes to FindsBy Interface:
Aspect
Before Change
After Change
Package
org.openqa.selenium.internal
Undergoes modification in Selenium 4
Implementation
Implemented by RemoteWebDriver class
Still implemented by RemoteWebDriver class
Affected Methods
findElement(By) and findElements(By)
Modified, but behavior for end-users remains the same
Impact on End Users
End users remain unaffected
No change for users; methods still work with By class
Features of Selenium 4
Let’s discuss the new features of Selenium 4. Many interviewers ask about these in beginner Selenium interviews.
Below are the selenium 4 features that can be used for user-centric testing:
- Selenium 4 now offers built-in support for the Chrome DevTools Protocol. This lets QA engineers use Chrome’s developer tools. They can use the APIs in Chrome DevTools to improve testing and fix bugs.
- Selenium 4 improves request tracing and logging. It gives automation engineers better control over debugging and testing. It does this with hooks.
- Selenium 4 allows testers to work on two windows or tabs at the same time. This is useful when a test requires switching between multiple windows, such as when navigating to a new URL or tab. The newWindow() method with WindowType.Window creates and switches windows. Each window has a unique WindowHandle.
- Selenium 4 docs cover new features like Selenium Grid 4, Selenium IDE, and the W3C WebDriver protocol. Testers can use this doc to learn about the new APIs and features in this version.
- Selenium 4 adds relative locators, or friendly locators. They help find elements by their positions relative to other elements. These include:
above(): Finds elements above a specified locator or element.
below(): Finds elements below a specified locator or element.
toLeftOf(): Finds elements to the left of a specified locator or element.
toRightOf(): Finds elements to the right of a specified locator or element.
near(): Finds elements within a certain pixel distance from a specified locator or element.
- Selenium 4 now supports full-page screenshots in Firefox using the getFullPageScreenshotAs() method. This method captures a screenshot of an entire webpage. It requires casting the WebDriver instance to FirefoxDriver.
- Selenium 4 has extended the ChromeDriver class to ChromiumDriver. It allows access to Chrome DevTools features. This API can toggle network states, get console logs, and interact with secure websites.
- Selenium WebDriver 4 has improved error handling and reporting. This makes it easier to find and fix issues in tests.
- Selenium 4 improves logging and debugging. It supports the Chrome Debugging Protocol. This lets QA engineers use Chrome’s advanced debugging tools via Selenium. It makes tests more robust and easier to diagnose.
Selenium 3 vs Selenium 4
Selenium 4 has new features. They change things from Selenium 3. Check the below table for the difference between selenium 3 and 4:
Features | Selenium 4 | Selenium 3 |
Protocol Used | W3C standard protocol | JSON Wire Protocol |
Chrome Driver Class Inheritance | ChromeDriver extends ChromiumDriver class | ChromeDriver extends RemoteWebDriver class |
Selenium Grid | Enhanced GUI, support for Docker, and simplified setup | No Docker support; manual Hub and Node setup required |
Selenium IDE | A better GUI, a cloud-based Selenium Grid, and support for all browsers and platforms. | Available as a Firefox add-on |
Automation Testing Setup | Simplified; no need to manually start Hub and Node jars | Manual initiation of Hub and Node jars required |
Ease of Use | Simplified and user-friendly | More complex setup with manual initiation of jars |
Driver Compatibility | Improved compatibility with various browsers | Limited compatibility with newer browsers |
Remote WebDriver Functionality | Updated Remote WebDriver functionality | Relies on older Remote WebDriver functionality |
Execution Efficiency | Optimized Grid and Docker support enhance efficiency | Limited efficiency due to lack of Docker support |
Selenium IDE Accessibility | Accessible across multiple browsers and platforms | Limited to Firefox add-on |
Maintenance Overhead | Reduced with Docker support | Higher due to lack of Docker support |
Documentation and Community Support | Improved documentation and active community support | Potentially outdated documentation, limited community support |
Overall Advancements | Modern technology standards and enhancements | Relatively stagnant in technological advancements |
How Do We Migrate From Selenium 3 to Selenium 4?
The difference between selenium 3 and selenium 4 is majorly in its features. You must switch from Selenium 3 to Selenium 4 to use its features. You are now familiar with Selenium 4 and its latest release.
Here is the Selenium tutorial to take the general actions:
- Read about Selenium 4 from the official documentation on new features and changes.
- Update the project build config, like Maven or Gradle. Use the updated WebDriver and Selenium Servers libraries with Selenium 4.
- Refactor your Selenium 3 code for compatibility with new Selenium 4 features.
- Selenium 4 uses the W3C WebDriver protocol while Selenium 3 used JSON Wire protocol. Check if your code aligns with the new protocol to avoid any potential issues.
- Use ChromeDriver and GeckoDriver for Selenium 4. Replace the browser drivers with them. Check the supported version in the official browser driver docs.
- Execute your test suites on Selenium 4 for compatibility issues. Update your test scripts to fix the issues.
- If you are using Selenium Grid setup, upgrade your grid to be compatible with Selenium 4.
- Update your internal documentation concerning the changes introduced in Selenium 4. Training of your people is highly necessary to make one aware of new tools or workflows.
- Start the migration with a small subset of tests in a non-production environment. This will help find any issues before migrating all your test suites.
- After migration, monitor test runs and app behavior. Fix any issues.
Conclusion
Selenium 4 is a top web automation framework. It uses the Selenium Grid for better scalability, browser support, and W3C protocol integration. The latest Selenium 4 Beta helps testers and developers by improving software quality and testing.
FAQs
What are the Selenium 4 features?
Selenium 4 gives you: a W3C WebDriver spec, a Docker-integrated Selenium Grid, and a cross-browser, platform-supported Selenium IDE. It also improves driver compatibility and makes setup easier.
What is the difference between Selenium 3 and Selenium 4?
Selenium 4 adheres to the W3C WebDriver standard. Selenium 3 follows the JSON Wire Protocol. Selenium 4 has a better Selenium Grid, with Docker support, and an improved Selenium IDE than Selenium 3.
What are the 4 parameters of Selenium?
Selenium has four main products: WebDriver, IDE, Grid, and RC. Selenium WebDriver is for browser automation. Use Selenium IDE to record tests. Selenium Grid is for distributed testing. Selenium RC is for compatibility with earlier versions.
Does Selenium 4 need ChromeDriver?
Yes, Selenium 4 needs ChromeDriver. It is an interface for the Selenium script to interact with the Chrome browser.