What is Selenium?
Selenium is an open source automated testing suite for web applications across different browsers and platforms. It is quite similar to HP Quick Test Professional (QTP) only that Selenium focuses on automating web-based applications.
Selenium is not just a single tool but a suite of software's, each catering to different testing needs of an organization.
The webdriver proves itself to be better than both Selenium IDE and Selenium RC in many aspects. It implements a more modern and stable approach in automating the browser's actions. Webdriver, unlike Selenium RC, does not rely on JavaScript for automation. It controls the browser by directly communicating to it.
Supported languages:
Supported Browsers:
Selenium webdriver Architecture:
It is very important to know how webdriver tool works and how it is designed. This will helps to take the good advantage of the tool at the same time it will helps to make right automation framework.
Following figure shows the architecture of selenium webdriver.
Selenium webdriver architecture mainly consist of three components
1) Language Level Bindings :
At the Left hand side of the above figure, there are some bindings and these are language level bindings and with the help of that you can implement the Selenium webdriver code. In simple words they interact with the Selenium webdriver and work on various browsers. So we have a common API that we use for Selenium that has a common set of commands and we have various bindings for the different languages. So you can see there’s Java, Java, Python, Ruby, there’s also some other bindings and new bindings can be added very easily.
2) Selenium webdriver API:
Bindings communicate with Selenium webdriver API and and these API send the commands taken from language level bindings interpret it and sent it to respective driver. Basically it contains set of common library which allow to send command to respective drivers.
3) Drivers:
On right hand side of the figure, you see we have various internet browser specific drivers such as IE driver, a Firefox, Chrome, and other drivers such as HTML unit which is an interesting one. HTML unit driver works in headless mode which make test execution faster. The basic idea here is that each one of these drivers knows how to drive the browser that it corresponds to.
How exactly it works:
Let say you have written test using java (binding code) against Selenium API and that binding code is going to issue commands across webdriver wire protocol. This is a rest-based web service that is able to interpret those commands. The driver server is just a little executable that runs each one of the drivers has this driver server that basically listens on a port on your local machine when you run your tests and it’s waiting for these commands to come in. When these commands come in it interprets those commands and then automates the browser and then returns those results back.
In above section, we have covered the basic overview of Selenium webdriver. Now start your selenium-java test automation learning journey from part 1 and be master in it within few weeks..
Selenium is an open source automated testing suite for web applications across different browsers and platforms. It is quite similar to HP Quick Test Professional (QTP) only that Selenium focuses on automating web-based applications.
Selenium is not just a single tool but a suite of software's, each catering to different testing needs of an organization.
The webdriver proves itself to be better than both Selenium IDE and Selenium RC in many aspects. It implements a more modern and stable approach in automating the browser's actions. Webdriver, unlike Selenium RC, does not rely on JavaScript for automation. It controls the browser by directly communicating to it.
- Java
- C#
- PHP
- Python
- Perl
- Ruby
Supported Browsers:
- Internet Explorer
- Firefox
- Google Chrome
- Opera
- HTMLUnit
Selenium webdriver Architecture:
It is very important to know how webdriver tool works and how it is designed. This will helps to take the good advantage of the tool at the same time it will helps to make right automation framework.
Following figure shows the architecture of selenium webdriver.
- Language level bindings
- Selenium webdriver API
- Drivers
1) Language Level Bindings :
At the Left hand side of the above figure, there are some bindings and these are language level bindings and with the help of that you can implement the Selenium webdriver code. In simple words they interact with the Selenium webdriver and work on various browsers. So we have a common API that we use for Selenium that has a common set of commands and we have various bindings for the different languages. So you can see there’s Java, Java, Python, Ruby, there’s also some other bindings and new bindings can be added very easily.
2) Selenium webdriver API:
Bindings communicate with Selenium webdriver API and and these API send the commands taken from language level bindings interpret it and sent it to respective driver. Basically it contains set of common library which allow to send command to respective drivers.
3) Drivers:
On right hand side of the figure, you see we have various internet browser specific drivers such as IE driver, a Firefox, Chrome, and other drivers such as HTML unit which is an interesting one. HTML unit driver works in headless mode which make test execution faster. The basic idea here is that each one of these drivers knows how to drive the browser that it corresponds to.
How exactly it works:
Let say you have written test using java (binding code) against Selenium API and that binding code is going to issue commands across webdriver wire protocol. This is a rest-based web service that is able to interpret those commands. The driver server is just a little executable that runs each one of the drivers has this driver server that basically listens on a port on your local machine when you run your tests and it’s waiting for these commands to come in. When these commands come in it interprets those commands and then automates the browser and then returns those results back.
In above section, we have covered the basic overview of Selenium webdriver. Now start your selenium-java test automation learning journey from part 1 and be master in it within few weeks..
Very Nice article. Really helpful
ReplyDeleteThis comment has been removed by the author.
DeleteI find this blog very useful.
ReplyDeleteVery nice and useful information...
ReplyDeleteThanks sir. It is very informative and useful.
ReplyDeleteNice article Vinod. Keep it up.
ReplyDeleteThis comment has been removed by a blog administrator.
DeleteVery informative blog. Keep it up.
ReplyDeletewanderful job..
ReplyDeleteThis is Pratik Deshmukh
ReplyDeletenice article :)
One question : Does selenium web driver supports PhantomJs web browser ?
Hi Pratik,
DeleteSelenium webdriver supports PhantomJs web browser. You will get the required driver here.... http://mvnrepository.com/artifact/com.github.detro.ghostdriver/phantomjsdriver/1.1.0
Please let me know if you need any help regarding this.
Thanks,
Vinod Rane
Already started learning new topics from your blog!
ReplyDeleteThanks a lot!
Keep sharing - Keep updating
Nice blog and hope it will be so helpful to the people associated with the field. Good Raneji...Keep it up....
ReplyDeleteVery Nice blog and its good initiative started.This will definitely help peoples. Please Keep it up..
ReplyDeleteReally nice information Vinod
ReplyDeleteKeep it up
Great done Vinod..Very useful..Perfect
ReplyDeleteGreat... That what exactly I was waiting for. Good work Vinod. Best Luck and Keep it up.
ReplyDeleteI can see that you are an expert in your field! I am launching a website soon, and your information will be very useful for me. Thanks for all your help and wishing you all the best!
ReplyDeleteThanks Vinod, Your posts are like a guide for me in Selenium
ReplyDeleteThanks a lot guys!
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteNot yet. I will consider it in future posts
DeleteThis comment has been removed by the author.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteYou are doing a good job and sharing your knowledge to others! it was one of the good post to read and useful to improve the knowledge as updated one, keep doing the good work.
ReplyDeleteSelenium Training in Electronic City, Bangalore my knowledge as updated one, keep blogging.
This comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteHello Vinod Rane, thanks for providing so much information on Selenium & the components on Language Level Bindings, Selenium webdriver API, and Drivers. and working of webdriver. Thank you so much for providing the information for us. Follow us to get the best Selenium Training in Chennai!!
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by a blog administrator.
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteThanks for sharing this post with us! Techi9's Automation blog is a must-read for anyone looking to streamline processes and maximize efficiency with cutting-edge automation techniques.
ReplyDeleteشركة تسليك مجاري بالخبر tcNDz8sedf
ReplyDeleteشركة رش مبيدات بالاحساء yveCt1WLgn
ReplyDeleteتسليك مجاري QZtxTdh4jW
ReplyDeleteشركة مكافحة الحمام بالخبر ZdFiynFy7n
ReplyDeleteThis comment has been removed by the author.
ReplyDelete