Software Development

The Release of Selenium 4 (and 4.1) | Top Features to Look Into

The first-ever release of Selenium WebDriver 1.0 in 2007 has indented a lasting footprint in web automated testing. And through the years, the contributions of the Selenium project (WebDriver, Grid, and IDE) have truly transformed the way that we do quality assurance. 

Fast forward to the ‘drop-in’ release of Selenium 4 and Selenium 4.1, this article narrows down the top 5 changes you need to know for WebDriver, IDE, and Grid.

 

Selenium WebDriver 4 

W3C Standardization

Cross-browser testing has received an efficiency boost from the updates in Selenium’s architecture. 

The WebDriver APIs have removed the support for the legacy protocol and are fully compliant with the W3C Standardization. Allowing browsers and test scripts to communicate straight to the targeted browsers, users no longer have to go through the JSON wire protocol to encode and decode API requests.

For those that still have the ChromeDriver and GeckoDriver browser drivers in use, this standardization will not cause any effects since they have already supported the W3C protocols. 

To reassure you, using the W3C WebDriver will not cause any harm to existing users. The main changes only evolve around Capabilities and the Actions class.

Adding and deleting WebDriver APIs

FindsByID, FindsByCss or related FindsBy* (findElementBy) interfaces have been removed and replaced with ‘By’ instance. 

Before

 

driver.findElementByCssSelector(“.className”);

driver.findElementById(“elementId”);

driver.findElementByXPath(“xPath”);

After

driver.findElement(By.cssSelector(“.className”));

driver.findElement(By.id(“elementId”));

driver.findElement(By.xpath(“xPath”));

  • Relative Locators or Friendly Locators. Names such as above(), below(), toLeftOf(), toRightOf() and near() look to provide an easier way to spot elements that are close to the other DOM elements.As opposed to this, Selenium 4 also introduced new elements such as:
  • Exceptions set to understand test failures. ‘ElementClickInterceptedError’, ‘InsecureCertificateError’, ‘InvalidCoordinatesError’, and ‘NoSuchCookieError’ classes are included in /lib/error.
  • Chrome Debugging/DevTools Protocol (CDP) integration. Cross-language APIs are still under development to extend coverage for requirements like log captures or geolocation mocking

Sample code snippet to open a new window

driver.get(“https://www.katalon.com/”);

 

// Opens a new window and switches to new window

driver.switchTo().newWindow(WindowType.WINDOW);

// Opens Katalon Academy homepage in the newly opened window

driver.navigate().to(“https://www.academy.katalon.com/”);

Sample code snippet to open a new tab within the same window

driver.get(“https://www.katalon.com/”);

 

// Opens a new tab in existing window

driver.switchTo().newWindow(WindowType.TAB);

// Opens Katalon Download page in the newly opened tab

driver.navigate().to(“https://www.katalon.com/download/”); 

  • Emulate different network conditions. The Network.emulateNetworkConditions command helps compare the average loading time by scripting tests that emulate a range of network speed (slow and normal) and connection type (BLUETOOTH, 2G, 3G, 4G, WIFI, etc.).

Selenium IDE

The following are the updates Selenium 4 has added to Selenium:

  • Revived UI
  • Plug-ins to fully support Chrome, Firefox, or any other web extension plugins
  • Parallel testing by switching from being HTML-based to running on a NodeJs platform with the  “Selenium-side-runner” CLI runner
  • Improve scripts written using “while” and “if” conditions 
  • Allows the recorded tests to be exported in Java, C#, Python, .NET, and JavaScript language binding
  • Backup element selector and updated locator strategies to create more stable tests

Selenium Grid 4

Taking pointers and learning from the success of the Zalenium and Selenoid projects, Selenium Grid most notable change is being able to: 

  • Implemented a GraphQL model for a new UI to better query and manage Grid
  • Support deploying on Kubernetes-based infrastructures
  • Less maintenance work with standalone Firefox server to get Docker images 
  • On-demand Docker containers spin-ups without setting up virtual machines

The release of Selenium Grid 4.1 can be read in detail here.

Published on Java Code Geeks with permission by Katalon, partner at our JCG program. See the original article here: The Release of Selenium 4 (and 4.1) | Top Features to Look Into

Opinions expressed by Java Code Geeks contributors are their own.

Katalon

Katalon is a leading provider in software test automation solutions. The company provides an affordable, flexible, and scalable testing platform for web, API, mobile, and desktop testing — from creating tests, execution, reports, to seamless integration with the CI/CD ecosystem. Learn more at https://www.katalon.com/
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button