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

 

Where do I start ?

The fact that you are reading this content means you have already “started”. Good Job ! Now read more and get your hands-on writing some code that is provided on this website (Of course you are welcome to dabble around internet too, whatever makes sense to you)

BASIC TUTORIAL

INTERMEDIATE TUTORIAL

ADVANCED TUTORIAL

FRAMEWORKS & BEYOND

 

What is the programming language I need to know ?

Selenium api’s can be called in multiple programming languages and not limited to:

Java, C#, Groovy, Perl, PHP, Python , Ruby and 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

 

Additional References

Selenium Official Site

Selenium Wikipedia

Introduction to Selenium

Test Design Considerations