DEV Community

Cover image for Selenium 3 vs Selenium 4: What’s New and Improved in Test Automation
Robort
Robort

Posted on

Selenium 3 vs Selenium 4: What’s New and Improved in Test Automation

Selenium has advanced web automation testing significantly, with notable growth seen in the transition from Selenium 3 to Selenium 4. These improvements play a pivotal role for individuals involved in testing and software development seeking to enhance their automated testing functionalities. Selenium is a widely used tool by many automation testing companies that offer many automation testing services.

In the world of Quality Testing, Selenium is a key player. Today, we'll delve into the fundamental differences between Selenium 3 and Selenium 4.

Selenium testing is extensively utilized across various industries. In today's fast-paced world, businesses must launch their online products swiftly to remain competitive in the market.

Given the intense competition, numerous automation frameworks are available, with Selenium being one of the most prominent. Over time, several versions of Selenium have been released, including Selenium 1 (Selenium RC), Selenium 2, Selenium 3, and Selenium 4 (Beta).

What is Selenium Automation Testing?

Selenium is a popular tool used for making web tests automatic across different platforms and browsers.. This includes creating scripts that mimic the actions users take on web browsers, like clicking buttons, entering text, and checking for accuracy. By automating these tasks, testers can effectively verify the functionality and speed of web applications on various browsers and platforms.

Additionally, Selenium is essential in the testing industry because it is open-source. It's additional dynamic features of selenium testing make the QA process faster and result-driven. This approach reduces the requirement for manual labor, speeds up testing processes, and improves the overall performance of web applications.

Key Difference between selenium 3 and selenium 4

We have studied the architectural difference between Selenium 3 and Selenium 4 in the above section. Having a clear understanding of the difference between Selenium 3 and Selenium 4 is essential in order to fully utilize the capabilities of Selenium 4.

ChromeDriver Handling

  • Selenium 3

1. Compatibility issues frequently occurred with newer Chrome versions.
2. Required manual updates of the ChromeDriver to ensure compatibility, leading to disruptions in testing.
3. When initiating the use of ChromeDriver, it often required explicitly specifying the driver's path:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service

service = Service('/path/to/chromedriver')
driver = webdriver.Chrome(service=service)
Enter fullscreen mode Exit fullscreen mode
  • Selenium 4

1. Provides smooth integration with the most recent Chrome releases.
2. Simplifies ChromeDriver handling, reducing the need for manual updates and improving compatibility.
3. Ensures continuous testing by seamlessly incorporating the latest Chrome versions.

Native Support for DevTools API

  • Selenium 3

1. Does not have built-in support for the DevTools API.
2. Testers need to rely on external libraries or tools to access browser internals.

  • Selenium 4

1. Introduces native support for the Chrome DevTools Protocol (CDP).
2. Allows testers to directly interact with browser features such as network conditions, performance testing metrics, and more.
3. Enhances debugging capabilities and allows for more in-depth browser automation.

Example Snippets Using Selenium 4 with CDP:

  • Throttle Network Conditions ‍Creates a slow 3G network environment, helpful for assessing the performance of your application under various network speeds.
driver.execute_cdp_cmd('Network.enable', {})
driver.execute_cdp_cmd('Network.emulateNetworkConditions', {
    'offline': False,
    'latency': 200,  # ms
    'downloadThroughput': 780 * 1024 / 8,  # 780 kbps
    'uploadThroughput': 330 * 1024 / 8,  # 330 kbps
})
Enter fullscreen mode Exit fullscreen mode
  • Get Performance Metrics Gathers different performance indicators from the browser, including load times and script execution times, to pinpoint performance bottlenecks.
performance_metrics = driver.execute_cdp_cmd('Performance.getMetrics', {})
print("Performance Metrics:", performance_metrics)
Enter fullscreen mode Exit fullscreen mode

- Capture Console Logs
‍Allows for capturing browser console logs, which is useful for troubleshooting problems on the client-side.

driver.execute_cdp_cmd('Log.enable', {})
logs = driver.get_log("browser")
for log in logs:
    print(log)
Enter fullscreen mode Exit fullscreen mode

Enhanced Selenium Grid

  • Selenium 3

1. Traditional Grid architecture.
2. Setting up and managing Grid nodes and hubs can be complex.
3. Limited support for scalability and parallel test execution.

  • Selenium 4

1. Revamped Selenium Grid with improved architecture.
2. Easier setup and management of nodes and hubs.
3. Better support for parallel test execution, aiding in faster test completion.
4. Enhanced scalability and resource management.

Relative Locators

  • Selenium 3

1. Relies on traditional locators like id, name, className, tagName, linkText, partialLinkText, CSS Selector, and XPATH.
2. Element identification may require complex and lengthy locators.

  • Selenium 4

1. Introduces relative locators (previously known as "Friendly Locators").
2. Enables locating elements based on their position relative to other elements (e.g., toLeftOf, toRightOf, above, below, near).
3. Simplifies element identification and makes test scripts more readable and maintainable.

Let see the examples:
Right Of

element_to_right = driver.find_element(locate_with(By.TAG_NAME, "button").to_right_of(reference_element))
Enter fullscreen mode Exit fullscreen mode

Left Of

element_to_left = driver.find_element(locate_with(By.TAG_NAME, "button").to_left_of(reference_element))
Enter fullscreen mode Exit fullscreen mode

Above Of

element_above = driver.find_element(locate_with(By.TAG_NAME, "input").above(reference_element))
Enter fullscreen mode Exit fullscreen mode

Below Of

element_below = driver.find_element(locate_with(By.TAG_NAME, "input").below(reference_element))
Enter fullscreen mode Exit fullscreen mode

Near Of

element_near = driver.find_element(locate_with(By.TAG_NAME, "input").near(reference_element))
Enter fullscreen mode Exit fullscreen mode

Selenium IDE

  • Selenium 3

1. Selenium IDE was deprecated and then reintroduced with basic functionalities.
2. Limited in terms of advanced features and usability.

  • Selenium 4

1. Updated Selenium IDE with a more robust and user-friendly interface.
2. Enhanced capabilities for recording, editing, and debugging test scripts.
3. Features intelligent element selection, auto-completion, and integrated debugging tools.
4. Improves productivity and ease of use for testers at all levels.

W2C WebDriver Standard

  • Selenium 3

1. Partial implementation of the W3C WebDriver standard.
2. Some inconsistencies between browser drivers due to varying levels of compliance.

  • Selenium 4

1. Full compliance with the W3C WebDriver standard.
2. Ensures a more consistent and reliable behavior across different browser drivers.
3. Facilitates better compatibility and stability in test automation.

Improved Documentation and Support

  • Selenium 3

1. Documentation was sometimes seen as lacking in depth and clarity.
2. Testers often had to rely on community forums for troubleshooting.

  • Selenium 4

1. Offers improved and more comprehensive documentation.
2. Includes detailed guides and examples, making it easier for users to understand and implement features.
3. Better support from the Selenium community and maintainers.

Enhanced Window and Tab Management

  • Selenium 3

1. Basic support for managing browser windows and tabs.
2. Switching between windows and tabs often required workarounds.

  • Selenium 4

1. Provides more robust APIs for managing browser windows and tabs.
2. Easier to switch between windows and tabs with the new Window and WindowType classes.
3. Improved handling of new windows and tabs in test scripts.

Better Browser Driver Management

  • Selenium 3

1. Users often had to manually download and manage browser drivers.

  • Selenium 4

1. Integration with WebDriverManager, simplifying the process of downloading and managing browser drivers.
2. Automates the setup and management of browser drivers, reducing configuration effort.

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager

# Initialize WebDriver
driver = webdriver.Chrome(ChromeDriverManager().install())
Enter fullscreen mode Exit fullscreen mode

New Feature in WebDriver

  • Selenium 3

1. Limited to existing WebDriver functionalities.

  • Selenium 4

1. Adds new WebDriver features like executeAsyncScript for better handling of asynchronous operations.
2. Improved support for handling modern web applications with new commands and functionalities.

Conclusion

To conclude, the shift from Selenium 3 to Selenium 4 represents a major progression in web automation testing. Testers and developers can take advantage of Selenium 4's enhanced structure, upgraded compatibility, and innovative features. Utilizing Selenium 4 enables teams to make testing processes more efficient, improve software quality, and meet business goals more successfully.

It is essential to stay up-to-date with the latest QA software testing services and techniques to make testing process more efficient and effective. As web applications grow and get complex, the testing tools also need to be improve. Alphabin always adopted the latest technologies and stay up-to-date in appling testing methodologies.

Top comments (0)