Due to web applications’ increasing scope and complexity, the need for automated software testing has increased significantly in recent years. To consider this aspect, the company Thought Works developed the open-source test tool Selenium, which it released in 2004. Selenium and its various tool variants are now one of the best-known test tools in the field of automated testing of web applications.
Selenium itself consists of a tool family. This includes the Selenium IDE, an ideal capture and replay tool for test automation wanting to use Selenium for the first time. With this Mozilla Firefox extension (add-on), it is possible to directly record executed interactions with a website, carry out object recognition and then run the recordings or save them as scripts. These can then be adapted afterward or exported to different programming languages. The functionality of the Selenium IDE itself can be expanded using Firefox add-ons (e.g., log plugin, test results, screenshot on fail). A disadvantage is that these add-ons are only available for Firefox.
However, this disadvantage does not apply to the Selenium WebDriver, which makes it possible to test web applications in different browsers from a development environment such as Eclipse. The representatives include Internet Explorer or Edge from Microsoft, Mozilla’s Firefox, Apple’s Safari, or Opera. Suppose you want to test different browser versions from a manufacturer in a further step (e.g., the last three releases). In that case, the Selenium Grid is another tool in the Selenium family. Since this tool is similar to a server-client architecture (one or more nodes are connected to a so-called hub), the tests can be distributed over several network computers, enabling the corresponding scaling. Another advantage is the parallel execution of test cases in different browsers and the test execution on mobile devices (e.g., via the test framework Appium).
Increasing Popularity And Distribution
In recent years, Selenium has become increasingly popular as a test automation framework for testing web applications. It is now the most used tool in the field of test automation. The main reasons for this, in addition to free availability (Selenium is subject to the Apache 2.0 license as open source software) and thus no license costs, are Selenium’s easy scalability and parallelization. Uncomplicated integration into existing continuous integration or continuous delivery systems also plays a role here. Finally, Selenium’s ease of installation and learning is another plus. A disadvantage is that there is no direct support for Selenium. If problems arise, you are then dependent on the Selenium Community.
Selenium’s Leap To Version 3
Selenium version 3 was released on October 13th, just in time for the Selenium conference in London (SeleniumConf UK) in mid-November. Before that, users could download and test beta versions (4 in total) in the download area of the Selenium website for the first time. Although the version jump from 2.53.1 to 3.0.0 would suggest significant changes, the new features integrated into Selenium are manageable. One of the most significant changes here is replacing the Selenium Core implementation with appropriate adjustments and extensions in the WebDriver module. This impacts users of the older Selenium RC API, as it is no longer supported and is now part of a so-called legacy package.
With the release of Selenium 2 in 2011 and the WebDriver API introduction, the respective drivers for the most critical browsers were also supplied by the Selenium project team and regularly adapted to newly available browser versions. In the meantime, all major browser manufacturers have implemented their drivers to support the Selenium WebDriver. Since the manufacturers know their browsers best, this can only be beneficial for the stability and timely availability of new versions. This is due not least to the fact that the WebDriver, as an open-source solution, is the basis of a recommendation from the World Wide Web Consortium (W3C) for browser automation. The Selenium development team itself provided the blueprint for this.
Suppose you want to quickly and effectively familiarize yourself with test automation for web applications. In that case, you will not be able to avoid Selenium, which is available free of charge, especially since it appeals to both beginners (with Selenium IDE) and more experienced test automation (with Selenium WebDriver or Grid) in equal measure. With its excellent scalability and the parallel execution of test cases, Selenium Grid is ideal for use in a client-server environment, for example, to carry out browser compatibility tests on a larger scale. An easy-to-implement integration into existing CI systems can also be mentioned as a further advantage.