With the advent of new technologies, software testing is playing a crucial role in the success of a software development process. Manual testing has been replaced with automation testing due to various advantages it offers like faster execution, better accuracy, and consistent results.
Selenium is one of the most popular automated testing suites. Selenium is designed in a way to support and encourage automation testing of functional aspects of web-based applications and a wide range of browsers and platforms. Due to its existence in the open source community, it has become one of the most accepted tools amongst testing professionals.
This post will help you in understanding what Selenium is, how it works, why the future of automation lies in Selenium 4.
Contents
Why is Selenium so special?
Selenium is a software testing framework for web a Selenium is a software test automation framework for web applications. The tests can be written as HTML tables or coded in several popular programming languages and can be run directly in most modern web browsers. Selenium deploys on Windows, Linux, and Macintosh platforms. It is open-source software, released under the Apache 2.0 license, and can be downloaded and used without charge.
The framework supports the automated control of web page content and relies on JavaScript for automation. As such, it supports “live” content that changes after the load event. This is in contrast to many other automation tools that only support “static” pages (i.e., content that does not change after the initial load event).
Selenium supports multiple programming languages through extensions called drivers (or bindings). For example, the Java extension for Selenium WebDriver provides all the Selenium commands in Java that are needed to run Selenium tests using Java while Python’s selenium package provides all the Selenium WebDriver commands available through Selenium with Python.
At the time of writing this article, the latest version of Selenium is Selenium 4.
Selenium 4: Key Features
A new version of Selenium has been released, with a lot of great new features. This article will focus on some of the most talked-about features, and provide you with a first look at how they work.
The most anticipated feature was the WebDriver W3C standard, which is now fully implemented. But there are many other new features, including the Page Object Model (POM), simplified commands, and more.
Selenium 4 is the latest and stable release of Selenium. After two years of development, it was finally released in March 2020. In this article, we will discuss the new features of Selenium 4 and how these features make our life easier as an automation tester.
- Relative Locators
- Multiple Element Selector
- Chrome Dev Tools
- Dev Tools Protocol Support
- WebDriver Playback Extension for Firefox
- Simplified Exception Handling
- ToString() Method for WebElements
- Inspector Mode for Edge Browser
Relative Locators
With the inclusion of Relative locators, Selenium 4 has brought an easy way of locating elements based on their position concerning other elements. This is achieved using the Position property of the RelativeLocator API.
Selenium provides the following properties for RelativeLocator API:
- above: Finds elements located above the specified element.
- below: Finds elements located below the specified element.
- toLeftOf: Finds elements located to the left of the specified element.
- toRightOf : Finds elements located to the right of the specified element.
- near: Finds elements located near the specified element.
Multiple Element Selector
Selenium 4 comes with a new feature called Multiple Element Selector. This selector is similar to the native selector but the only difference is it selects all the matching elements instead of just the first one.
Multiple Element Selector has been added in Selenium 4 recently and currently, it is available only in Java. There are plans to add it in other languages as well.
Chrome Dev Tools
The Chrome DevTools Protocol allows for tools to instrument, inspect, debug and profile Chromium, Chrome, and other Blink-based browsers. Many existing projects currently use the protocol. The Chrome Developer Tools uses this protocol and the team maintains its API.
Chrome also supports an alternative protocol that uses JSON instead of WebSockets for communication between the browser and inspector.
Dev Tools Protocol Support
WebDriver W3C standard is currently supported by almost all the leading browsers. But it has some limitations when it comes to native OS interactions, file uploads, and downloads, browser history navigation, etc.
To address these limitations, a DevTools protocol has been introduced. This protocol is a network protocol developed by Google, and it was initially used by Chrome’s DevTools team for debugging web apps. Later it was made available to the browser vendors and other projects (like Selenium!).
The DevTools protocol is an alternative to the Selenium WebDriver W3C standard, and it introduces a new set of commands in addition to the existing ones. The advantages of this approach are:
- This approach enables direct communication between driver and browser, which helps native OS operations such as file uploads and downloads.
- It also provides access to more information about the DOM (Document Object Model) than what is available through the W3C WebDriver standard.
- It provides the ability to navigate browser history (to go back/forward).
- It gives us more control over cookies in addition to the usual add and deletes operations available through WebDriver.
WebDriver Playback Extension for Firefox
Selenium 4 has introduced a new feature called WebDriver playback extension. This is available as an add-on in the Firefox browser.
This extension can be used to generate automated tests from manual testing done by users in the browser. This tool will help us to create Selenium scripts easily (without writing any code). This tool can be used by non-technical testers also.
Currently, if you want to run your test cases on different browsers, you need to write separate code for each browser. But with this extension, you can record on any browser and play it on any other supported browser also. This extension will help us to minimize the efforts needed to create test cases for different browsers as well as platforms.
Simplified Exception Handling
In the previous versions of Selenium, the “NoSuchElementException” exception was thrown when a web element is not found on the page.
Various methods like findelement(), findElements() etc are used to throw NoSuchElementException when an element is not found on the page.
Selenium 4 has simplified exception handling. In Selenium 4, you can handle “NoSuchElementException” with a new method called: getException()
ToString() Method for WebElements
This feature is introduced to make the life of automation architects and developers easier. Let me explain what exactly happens with this feature using a sample code.
WebElement element = driver.findElement(By.id(“sample”));
System.out.println(“Web element is: ” + element);
In the above code, before version 4 printing the WebElement object would have returned something like below.
org.openqa.selenium.remote.RemoteWebDriver$RemoteWebElement@1e5bfe3c
Using this information, we can’t understand what exactly the element is unless we traverse through the entire DOM tree manually or through some other means. In Selenium 4, if you print the same web element you will get an output as shown below which will display all the attributes of that particular web element like tag name, id, class name and so on which will be helpful in debugging and finding any issues during run time.
Inspector Mode for Edge Browser
Inspector Mode was introduced in Selenium 4 to support the new Edge browser. It is a feature of Microsoft Edge that allows users to track the DOM elements of the web application that is under test. Inspector Mode is similar to Chrome DevTools, which allows users to track the DOM elements of a web application running on a Chrome browser.
Final Words!
Selenium and web automation are hot topics in today’s world. With the rise of modern technology, it is no surprise that there are many people who want to learn how to automate the web with Selenium.
Many organizations have already started using Selenium as one of their primary automation tools. This has been made possible by the fact that Selenium is open source and free to use.
Selenium 4 promises to provide even more advanced features, making it easier for developers to write automated tests for their applications. Moreover, it is supported across a number of cloud platforms including LambdaTest.
LambdaTest is a cloud-based Selenium 4 Grid that enables users to perform automated cross-browser testing. With LambdaTest, you can perform automated browser compatibility testing to ensure your web app works as expected on 3000+ different operating systems and browsers.