Selenium, Selenoid, Selenide, Selendroid ... What does all this mean?

Hello, Habr!



In the automation world, it’s rather difficult for a beginner to navigate. You have to learn a lot of concepts, understand the features of existing tools. For example, here: Selenium, Selenide, Selenoid, Selendriod - what is it, how is it different? Yes, and can they be compared?



Wrote an article to help sort this out. Who cares, welcome to cat!







Selenium



Selenium is a tool for automated browser management.



As part of the Selenium project, a series of open source software products is being developed:





Selenium Server is a program that allows you to manage browsers using special drivers. It should be located on the same computer as the browser with which we have to work.



After installing Selenium Server, you can access it from another computer to remotely control browsers using a special protocol that is written over HTTP.



Summary - Selenium Server helps manage browsers on a specific machine.



More details can be found here: https://www.seleniumhq.org/



Selenium Grid is installed on one computer and can work remotely with several others on which Selenium Server is installed.



It was created in order to run tests on a large number of machines, referring to only one on which the Selenium Grid is installed.



To create a session (i.e. launch a browser), we will always come to the computer where the Selenium Grid stands. He himself will decide which machine is less loaded for this and there and redirect the team.



All machines that Selenium Grid works with can run different operating systems, different browsers can be installed on them.



Briefly - Selenium Grid is needed to organize work with several machines where Selenium Server is installed.



More details can be found here: https://www.seleniumhq.org/docs/07_selenium_grid.jsp



Selenium IDE is a plug-in for the Firefox browser with which you can record and play back user actions.



It has no special relation to either Selenium Server or Selenium Grid and allows you to work only with a local browser.



More details can be found here: https://www.seleniumhq.org/selenium-ide/



Selenide



Selenide is one of the frameworks for automated testing of web applications. Using it, you can quickly and relatively simply write code that will generate and send HTTP commands to Selenium Server or Selenium Grid.



He is imprisoned for writing scripts that will test the operation of a web application: searching for the necessary elements, checking events, interacting with the UI, and so on.



Despite the similarity of the name with the Selenium line of programs, other guys are developing Selenide itself.



In short - with Selenide it is easier to write code that is tailored specifically for testing a web application.



More details can be found here: https://ru.selenide.org/



Selenoid



Selenoid is a program that allows you to control browsers and Android emulators using special drivers. Able to run each of them in isolation in the Docker container.



Selenoid is an alternative solution to Selenium Server, although the essence is the same - the organization of the drivers.



The main idea of ​​Selenoid is to launch a new container for each session (launch a new browser or emulator) and stop it immediately after closing the session.



Selenoid allows you to maintain a high load without additional resource costs.



More details can be found here: https://aerokube.com/selenoid/latest/



Selendroid



Selendroid is a framework for automated testing of Android-based mobile applications.



Used on early versions of Android - up to 17 level api (android 4.2). But not higher.



Briefly - this is not a very relevant framework for working with Android applications.



More details can be found here: http://selendroid.io



Total



There are many tools, each designed for its own tasks. I tried to talk briefly and without water about a group of Selen-projects. :)



If this format is interesting, then I will review the tools for mobile automation.



Thanks for attention.



All Articles