What is Selenium?

There are lots of definitions out there depending on what lens you would like to use and depending on technical or business value-add. Some of the definitions I like are as follows:

  1. Selenium automates browsers. That’s it!
  2. Selenium is a portable software testing framework for web applications
  3. Selenium is a set of different software tools each with a different approach to supporting test automation
  4. Selenium is a library or represents a set of api’s that can be used to control a browser programmatically

What is the programming language I need to know ?

 Selenium api’s can be called in multiple programming languages and not limited to:
  • Ruby
  • Java
  • Groovy
  • Perl
  • PHP
  • Python
  • C#
  • JavaScript

If you do not want to feel intimidated, then start with Ruby, click any of the tutorials above. Give it a try. Its free ya!

How do I choose a programming language?

 Wonderful question ! Pat on your back for asking this question. It is true, that many of us think Selenium is a tool or a entire stack in itself. As mentioned above, Selenium automates browsers. The rest of the scaffolding (aka. framework) has to be built like managing data, environments, exception handling, reporting and so on and we have to rely on many libraries.

We have written an entire section on how to make a decision and also emphasized that programming language choice should be the entry point for making a decision towards a holistic Automation Solution.

What are Selenium Components?

1. Selenium IDE is a complete integrated development environment (IDE) for Selenium tests. It is implemented as a Firefox Add-On, and allows recording, editing, and debugging tests. It was previously known as Selenium Recorder

Scripts are recorded inSelenese, a special test scripting language for Selenium. Selenese provides commands for performing actions in a browser (click a link, select an option), and for retrieving data from the resulting pages

2. Selenium client API helps write tests in various programming languages.With Selenium 2, a new Client API was introduced (with WebDriver as its central component)

3. Selenium Remote Control (RC) is a server, written in Java, that accepts commands for the browser via HTTP

4. Selenium WebDriver is the successor to Selenium RC. Selenium WebDriver accepts commands (sent in Selenese, or via a Client API) and sends them to a browser

5. Selenium Grid is a server that allows tests to use web browser instances running on remote machines


What is Selenium Ruby?

When we talk about Selenium Ruby, we mean the selenium api that is implemented in Ruby language. So in this case we are talking about the selenium-webdriver gem. We also use another gem called watir-webdriver, however that is another layer on top of selenium-webdriver with more features.

I am getting confused…

I was too initially when I start hearing selenium ruby, selenium java, selenium csharp and so on. However it is important to know the difference, because selenium is a library or api. It has to be implemented in some programming language and we will need to make a choice of programming language first before we even talk about selenium. So on this website we are trying to bring some clarity around what does Selenium actually mean. Too many of us think Selenium as a tool or a COTS software, unfortunately NOT. Because these wrong assumptions will lead us into wrong paths.