Selenium Introduction
What is Testing
Testing is the process of correctness and completeness of application or
software with respect to customer requirements.
Types
1. Manual Testing
2. Automation Testing
Manual Testing
It is an process to test the application by giving manually i/p and
observing manually o/p
Automation Testing
Testing an application or software with the help of an automation tool
and executive test script called as automation testing.
We are comparing actual results and expected results so we can
decide our test case is pass or fail.
Why we go for automation testing (Disadvantages of Manual Testing)
Compatibility testing is difficult in manual testing because in which
version browser and cross browser compatibility we are going to test so
it is difficult in manual testing but it will be easy in automation testing
As a tester we follow the testing life cycle so it will become lengthy and
takes more time in manual testing
More human resources are required in manual testing
We need to perform regression testing so it will be time consuming in
manual testing
we will not able to achieve that much accuracy in manual testing
So that why we go for automation.
Advantages of Automation Testing
Reusability of test scripts : We did not write the test cases multiple times
so reusability is possible in this we are writing it once and used it many
times
Project duration reduces : So everything depends on delivery we can
reduce the project duration by using agile methodology with
automation.
Compatibility testing is easy : Compatibility testing is easy we can
execute it parallelly in automation testing.
Required Less human efforts
Using automation Accuracy is more
Disadvantage of Automation
Required skilled labour
More money investment required than manual
Automation tool maintainance required.
History of Selenium
Selenium Invented by Json Hugins and his colleagues in 2004
Originally name was JSFT (JavaScript functional tester)
Build as open-source browser-based integration test framework built by
thought works at Chicago for time and expense keeping system
Developed using JavaScript and HTML
Designed to make test writing easy
Ability to step through individual tests
Advantages of selenium
Selenium is more demandable in industries
It is Open source tool (free)
It supports Multiple languages:- Java, python, c#, ruby etc
It supports Multiple OS:- Windows, MacOS, Linux
It supports Multiple browsers e.g. chrome, Firefox, safari, opera, edge
It helps is to do Parallel Testing
It supports to integrate third party tools like TestNG, Cucumber, Git,
Jenkins, GitHub, Maven etc.
Disadvantages/Limitations of Selenium
Selenium does not support automation testing for desktop applications
We cannot automate Captcha /barcode
File uploading and downloading supposed to possible in selenium but
nowdays in latest version somehow possible
No reporting facility in selenium
File upload >> We can achieve with AutoIT
No reporting facility >> We can achieve with TestNG
Selenium Components
Here is the list of Components :
1. Selenium Remote Control (RC)
2. Selenium Grid
3. Selenium Integrated Development Environment (IDE)
4. WebDriver
1. Selenium RC :
Unfortunately; testers using Selenium Core had to install
the whole application under test and the web server on
their own local computers because of the restrictions
imposed by the same origin policy. So another
ThoughtWork’s engineer, Paul Hammant, decided to
create a server that will act as an HTTP proxy to “trick” the browser into
believing that Selenium Core and the web application being tested come
from the same domain. This system became known as the Selenium
Remote Control or Selenium 1.
2. Selenium Grid :
Selenium Grid was developed by Patrick Lightbody to
address the need of minimizing test execution times as
much as possible.
Selenium Grid is a tool used together with Selenium RC
to run tests on different machines against different
browsers in parallel.
That is, running multiple tests at the same time against different machines
running different browsers and operating systems called as remote
automations.
3. Selenium IDE
Shinya Kasatani of Japan created Selenium IDE, a
Firefox extension that can automate the browser
through a record-and-playback feature. He came up
with this idea to further increase the speed in creating
test cases. He donated Selenium IDE to the Selenium Project in 2006.
4. Selenium WebDriver
Simon Stewart created WebDriver circa 2006 when
browsers and web applications were becoming more
powerful and more restrictive with JavaScript programs
like Selenium Core. It was the first cross-platform
testing framework that could control the browser from
the OS level.
Selenium Architecture
Search context is the super most Interface which contains abstract
method and inherited to WebDriver interface
WebDriver is an Interface which contain abstract method of search
context and it's own abstract method
All the abstract methods are implemented in remote WebDriver class
Remote WebDriver is as class which implements all the abstract
methods of both interfaces
Browser such as Firefox, chrome, safari, edge etc extends to remote
WebDriver class
To run application in multiple browsers compatibility testing i.e. writhing
test script in a single browser and run same script in different browser
(WORA)
To achieve this we need to use upcasting in selenium