📜 ⬆️ ⬇️

What is Selenium?

From time to time I have to unravel the terminological intricacies associated with the use of phrases in which the word Selenium is found - Selenium 2.0, Selenium IDE, Selenium RC, Selenium WebDriver, Selenium Server, Selenium Grid.

Confusion arises largely due to the fact that nowhere is there a clear description of all these terms on one page, and I will try to fill this information gap.

Selenium


Selenium is a project in which a series of open source software products is being developed (open source):

To call simply Selenium any of these five products, generally speaking, is wrong, although it is often done so, if it is clear from the context which of the products is meant, or if we are talking about several products at the same time, or all at once.

Selenium WebDriver


Selenium WebDriver is a software library for managing browsers . Often also used the shorter name WebDriver.
')
Sometimes they say that this is a “browser driver”, but in fact it is a whole family of drivers for different browsers, as well as a set of client libraries in different languages, which allow working with these drivers.

This is the main product being developed in the framework of the Selenium project.

Selenium WebDriver is also called Selenium 2.0, the reason for this will be explained below.

As already mentioned, WebDriver is a family of drivers for different browsers, plus a set of client libraries for these drivers in different programming languages:



The Selenium project is developing drivers for Firefox, Internet Explorer and Safari browsers, as well as drivers for Android and iOS mobile browsers. The driver for the Google Chrome browser is developed as part of the Chromium project, and the driver for the Opera browser (including mobile versions) is developed by Opera Software. Therefore, they are not formally part of the Selenium project, they are distributed and supported independently. But logically, of course, they can be considered part of the Selenium product family.

The situation is similar with client libraries - libraries for Java, .Net (C #), Python, Ruby, and JavaScript are being developed as part of the Selenium project. All other implementations are not related to the Selenium project, although, perhaps in the future, some of them may join this project.

Selenium rc


Selenium RC is a previous version of browser management library . The RC abbreviation in the name of this product is decoded as Remote Control, that is, this means for “remote” browser control.

From the functional point of view, this version is significantly inferior to WebDriver. Now it is in a mothballed state, it does not develop, and even known bugs are not fixed. And anyone who is faced with the limitations of Selenium RC is invited to switch to using WebDriver.

Sometimes Selenium RC is also called Selenium 1.0, while WebDriver is called Selenium 2.0. Although in reality, the distribution of version 2.0 includes both the implementation of both Selenium RC and WebDriver. But when version 3.0 comes out - only WebDriver will remain in it.

From a technical point of view, WebDriver is not the result of the evolutionary development of Selenium RC, they are built on completely different principles and they have practically no common code. What unites them is the fact that both implementations were made as part of the Selenium project. Well, or to be completely accurate, WebDriver was at first an independent project, but in 2008 there was a merger and now WebDriver is the main vector of the development of the Selenium project.

Selenium Server


Selenium Server is a server that allows you to control the browser from a remote machine, over the network . First, on the machine where the browser should work, the server is installed and started. Then, on another machine (technically possible on the same one, of course), the program is started, which, using the special RemoteWebDriver driver, connects to the server and sends commands to it. He in turn launches the browser and executes these commands in it using the driver corresponding to this browser:



Selenium Server supports two sets of commands simultaneously - for the new version (WebDriver) and for the old version (Selenium RC).

Selenium grid


Selenium Grid is a cluster consisting of several Selenium servers . It is designed for the organization of a distributed network that allows you to simultaneously run many browsers on a large number of machines.

Selenium Grid has a star topology, that is, it includes a dedicated server, which is called the “hub” or “switch”, and the rest of the servers are called “nodes” or “nodes”. The network can be heterogeneous, that is, the switch and nodes can work under different operating systems, they can be installed on different browsers. One of the tasks of the Selenium Grid is to “pick up” a suitable node when the requirements for it are specified during browser start up - browser type, version, operating system, processor architecture and a number of other attributes.

Previously, Selenium Grid was an independent product. Now physically one product is Selenium Server, but it has several startup modes: it can work as an independent server, as a cluster switch, or as a cluster node, this is determined by the launch parameters.

Selenium IDE


Selenium IDE is a Firefox browser plugin that can record user actions , play them, and also generate code for WebDriver or Selenium RC in which the same actions are performed. In general, it is "Selenium Recorder".

Testers who do not know how (or do not want) to program, use Selenium IDE as an independent product, without converting recorded scripts into program code. This, of course, does not allow for the development of fairly complex test suites, but some lack simple linear scenarios.

That seems to be all.

If I forgot to tell you about a term, write it in the comments and I will try to add it to this mini-dictionary.

Source: https://habr.com/ru/post/152653/


All Articles