Skip to main content

About Selenium


Let's start with a basic information about Selenium.

Selenium:

It is basically a tool or framework that is used to automate web browsers. By using selenium you can automate a lots of web browsers like Firefox, IE, Chrome etc. 

It is possibly most widely used open source solution. Selenium is basically a set of different tools with different purpose and role. E.g.
  • Selenium IDE
  • Selenium 1 (Selenium RC)
  • Selenium 2 ( Selenium Webdriver)
  • Selenium-Grid
Selenium webdriver is the one which we will be using during this course. It supports following browsers:
  • Google Chrome
  • Internet Explorer
  • Firefox
  • Safari
  • Opera
  • HtmlUnit
  • phantomjs
  • Android
  • iOS
So, it is the one that allows you to automate these web browsers. If we talk little bit technically, then it is basically an API for web browsers. Using this you can program web browsers in a way that you want them to do.

If you want to learn more about selenium then you can go through this link.

Architecture for Selenium WebDriver:




You don't actually have to bother about what exactly this architecture depicts, but you should at least have a general idea of how it works.

As from above diagram you can see that selenium web driver API lies between browser drivers and language bindings. 

Each browser driver knows how to interact with respective browser elements. Selenium web driver sends commands to these driver servers which in turn executes the commands and sends back the result. 

Language bindings are just the implementations in various languages that can be used for automation. 

So, we have a common API with common set of commands and we have various bindings for different languages. These bindings communicate with the common API i.e. web driver API.


In my next post I will be explaining you how to setup environment for developing automation framework in selenium, so keep in touch.



Thanks for reading this post. See you in next post. Cya!








Comments

Popular posts from this blog

Logging in Selenium

Any application is incomplete until it's activities are traceable. Here comes the use of logging. By logging important actions you can later on track anything you want especially when there are some error situations. It becomes easy to debug the issues if logs are generated properly. Similarly, it is very important that our automation framework generates logs so that whenever any test fails, we can track the issue by tracing it's logs. In this post, I will be explaining you how we can log using log4net in selenium. Before using methods of this library we need to configure this to our application. Let's do this first then. Configuring log4net in selenium: First of all you need to download this library so that this can be used. You can read about log4net and then download it from this link and save the dll file after extracting it to folder that is under your project folder. After downloading this library you need to add references of this in you project. To do ...

SELENIUM: Using Nested Classes

In this post I will be using nested class pattern to make few things easier. e.g. If you see in our test application there is a navigation bar on left side containing various menus i.e. Posts, Pages etc. Further each main menu contains sub-menu e.g. Posts menu contains sub-menues as "All Posts", "Add New", "Categories" and "Tags". In this type of situations, it is good to use nested classes to make things more readable and easy to use. E.g. Suppose I want to access "All Posts" navigation then I would want this to be done like this. " LeftNavigation.Posts.AllPosts.Select(); " i.e. I would want that there would be a class called "LeftNavigation" and when I press '.' (dot) it shows all the main menues in this navigation e.g. "All Posts", "Pages" etc. then I choose " LeftNavigation.Posts " and again when press '.' it shows all the sub-menues inside this Posts menu...

"Hello Selenium"

Now, as we have already setup the required environment, let's just start with a hello world test with selenium. In this let's just write a basic test to make sure that our environment is working properly. For this hello selenium test we will be automating below test: Navigate to " https:// www.google.com  " Write "Hello selenium" in search box Press search button Below are the code snippets: Test class UnitTest1 containing required test. Here in this class, at the top I have used two statements i.e.     using Microsoft.VisualStudio.TestTools.UnitTesting;     using TestFramework; First using statement is required in for writing unit tests and second using statement is required so that we can access methods from class under TestFramework namespace. There is [TestClass] attribute used with this class. This is required so that tests written in this class can be recognized. If you miss this attribute then your tests are not going ...