SlideShare a Scribd company logo
Selenium
● Selenium is opensource Web Automation Tool
● It is a tool which is helping to run the scripts using any
programming language i.e. Java, Python, Ruby, C#, Java Scripts
Etc.
● Advantages Of Selenium
● It is Open Source (Source Code is Visible to All)
● It is Free of Cost
● Compatibility is possible
● It is Cross Platform tool.
● Limitations of Selenium?
● It Doesn’t Support Window Bases Application Directly need third
party tool to be integrated.
● We Can not Automate Desktop Bases Applications.
● We Cannot Automate Captcha.
● We Cannot Automate Barcode.
● We Cannot Automate File Uploading.
● We Cannot Automate Ad hoc testcases.
Note: Selenium Community Developed Specific Tool Called Appium to Automate
Windows Based Applications.
Selenium Community Also Developed Tools To Test Mobile Applications
1. Selendroid – It Supports only Android Platform
2. Appium- It Supports Android Platform, MAC, Windows.
Note: All Selenium related resources and documents can be found on the below
website
http://www.seleniumhq.org/
· Why Selenium is so Popular and
Demanding?
Table of Contents
​ · Why Selenium is so Popular and Demanding?
​ ·What Are the Different Flavor’s/Components of Selenium?
​ How Selenium Perform Automation Testing On Browser?
​ Architecture of Selenium
​ Why we Upcast the browser related child class to WebDriver and not
RemoteWebDriver class?
​ Where Did You Use Upcasting In Selenium?
​ Steps To Install /Integrate Selenium Server to the Java Project
​ Demonstration Program for Upcasting Concept(FirefoxDriver Class object
to WebDriver interface) and Accessing various methods of WebDriver
interface.
​ package Sample; import org.openqa.selenium.WebDriver; import
org.openqa.selenium.firefox.FirefoxDriver; public class
UpcastingToWebDriver_LaunchBrowser { public static void
main(String[] args) throws InterruptedException { //setting the path of
the gecko driver executable
System.setProperty("webdriver.gecko.driver",
".drivergeckodriver.exe"); //Launch the Firefox browser WebDriver
driver = new FirefoxDriver(); //Enter the url
driver.get("http://www.google.com"); //Get the title of the google page
and print it on the console String title = driver.getTitle();
System.out.println("the title of the page is :"+ title); //Get the URL of
the google page and print it on the console String currentUrl =
driver.getCurrentUrl(); System.out.println("the URL of the page is :"+
currentUrl); //Get the source code of the google page and print it on
the console String pageSource = driver.getPageSource();
System.out.println("the source code of the page is :"+ pageSource);
//Halt the program execution for 2 seconds Thread.sleep(2000); //
Close the browser driver.close(); }
​ FAQ’S
​ 1.What is Selenium Used For?
​ 2.What is Salary Of Selenium Tester?
​ 3.What are the Advantages of Selenium?
Selenium is so popular and demanding due to following features
1. It is an Opensource tool freely available on internet
2. No project cost involved
3. No license required
4. Can be easily customize to integrate with other Test management tools
like JIRA, ALM, Bugzilla etc.
5. It supports almost 13 different software languages
6. Java
7. C#
8. Python
9. Ruby
10. Perl
11.PHP
12. Java script
13. Haskell
14. R
15. Dart
16. TCL
17. Objective C
18. Java script (Node JS)
6)It Supports All the browsers (Firefox, Chrome, IE, etc.)
7)It Supports almost all the operating System (MAC, Window, Linux, etc.)
·What Are The Different
Flavor’s/Components Of Selenium?
1. Selenium Core – Developed by a company Called Thought Works way
back in 2004
2. Selenium IDE– Supports only Mozilla Firefox and supports record and
playback feature.
3. Selenium RC– Remote control version is 1.x used for parallel execution of
automation scripts on multiple remote system.
4. Selenium Webdriver– version is 2.x and 3.x and 4.x Compatibility is
possible in this and we can run the scripts in different languages as well.
Note: Selenium Web driver version 3.x is no longer capable of running Selenium
RC directly, rather it does through emulation and via an interface called
WebdriverBackedSelenium but it supports Selenium Grid Directly.
5.Selenium Grid – It is one of the components of selenium that is used to run
automation scripts on multiple system simultaneously.
It is used to carry out compatibility testing on multiple browsers and platform.
● What Are the Key /Important topic of Selenium?
● Automation framework- Guidelines and Rules to write selenium
code
● GitHub- Central Repository to store code
● Maven- Build dependency Tool for auto update of selenium version
● Selenium Grid- To test on multiple OS and browsers
● Jenkins- Continuous Integration
● TestNG- framework for generation of test reports and running
multiple test scripts in one go
1.
● What Are the Softwares required for Selenium?
● Eclipse IDE – Oxygen Stable Version
● JDK 1.8
● Selenium Server Standalone- 3.7.1(Stable version)
● From Where we have to download Selenium Eclipse Here it is the link
given below
http://www.seleniumhq.org/download
● Driver Executables
● For Firefox Browser
● The Name of driver executable – geckodriver.exe
● URL for download- https://github.com/mozilla/geckodriver/releases
● Version- 0.19 is recommended for Firefox browser with version
56.0 (selenium jar- 3.7.1)
● For Chrome Browser
● The name of the Driver executable is chromedriver.exe
● URL to Download-
https://chromedriver.storage.googleapis.com/index.html?path=2.31
/
● Stable Version for Chrome version is 62.0 (Use chromedriver.exe
with version 2.33)
● Browsers
● Firefox Version 57.0
● Chrome Version 62.0
Note: To stop auto update of Firefox browser version, make sure to disconnect
the internet connection and then install 54.0 version, now go to setting/option in
firefox browser and check the below checkbox- Never Checks for updates
Kindly Refer This image
● Application Under Test (AUT)
● Application Name- actiTIME
● Online URL of Application- https://demo.actitime.com/login.do
● Offline URL of Application- https://localhost:8080/login.do
● To Download actiTIME Application Use-
https://www.actitime.com/download.php
How Selenium Perform Automation Testing On Browser?
OR
Architecture of Selenium
Architecture Of Selenium
● Since Selenium supports multiple languages such as Java, Python, C#,
etc. we can develop automation scripts in all the supported languages,
this is known as language binding or client binding.
● When we execute the selenium code, request goes to the selenium
standalone server(also known as Selenium Web driver Server), which
further process the request based on the input received from the client
binding and perform specific actions on the respective browsers using the
browser specific driver executables, Ex. geckodriver.exe for Firefox
browser and chromedriver.exe for chrome browser and so on…
● Driver Executable uses a protocol called JSON Wire Protocol to
communicate with related browsers. here JSON stands for (Java Script
Object Notation).
##Selenium Java Architecture in Details
Explanation of Above image
Search Context is the super most and oldest interface present in selenium
WebDriver having two abstract methods those are findElement() method and
findElements() method this two methods are inherited to Webdriver interface
using extends keyword so that total 13 abstract methods are present in
WebDriver interface because Webdriver Interface is having already its own 11
abstract methods
To provide definition/implementation for 13 abstract methods inside interface we
are using Remote WebDriver Implementation class, All Browser classes are
inherited to Remote WebDriver Class.
Here, To Achieve runtime Polymorphism and to Access 13 abstract methods in
WebDriver interface we are following Concept of upcasting.
TakesScreenshot interface is used to handle the screenshot in selenium along
with that to handle the screenshot in selenium we have to use one method that is
getScreenshotAS method. But here the problem is that in selenium architecture
we have to connect or typecast the TakesScreenshot interface for that we have
to use Typecast Operator.
Next is JavaScriptExecutor interface this interface is used to scroll handling in
selenium along with this interface we have to use one method to handle scroll i.e.
ExecuteScript method here also we have to do typecasting for that we have to
use Typecast operator.
Note: All the above mentioned interfaces and classes are present in a package
called as “org.openqua.selenium”.
To view ant information about Selenium interfaces, classes and methods
navigate to the below page
https://github.com/SeleniumHQ/selenium/tree/master/java/client/src/org/openqa/s
elenium
After Opening this URL below path you have to follow
● List Of All the Methods Present in below Interfaces Of Selenium
WebDriver
1. Search Context Interface
● findElement ()-used to find the element which is present on
webpage
● findElements()-used to find the lists of elements which is
present on webpage
2. WebDriver Interface
● get()– It is used to open URL/Application, return type of this
method is Void.
● close()– It is used to close the current browser window,
return type of this method is Void.
● getTitle()– It is used to get Title of Current Webpage, return
type of this method is String.
● getPageSource()– It is used to get the source code of the
current webpage.
● getCurrentURL()– It is used to get the URL of current
webpage.
● getWindowHandle()– It is used to get the window handle of
current browser window.
● getWindowHandles()– It is used to get the window handle of
all the browser window.
● manage()– It is used to manage browser window.
● navigate()– It is alternative method for get method and it is
used to navigate from one page to another, one page to
previous page and also used to refresh the current
webpage.
● quit()– It is used to close all browser window.
● switchTo()– It is used to switch our control from webpage to
popups, forms, window etc.
● Method of TakesScreenshot Interface
● getscreenshotAS()– It is used to handle the screenshot in
selenium.
● Methods of JavaScriptExecutor Interface
● executeScript()
● executeAsynScript()– We dont use this method for automation.
● Methods of WebElement Interface
● clear()– It is used to clear the value inside the text field/ text box.
● click()– It is used to click buttons, links, radio buttons, checkbox, etc.
● getAttribute()– it is return the value of attributes of webelement.
● getCSSValue()– It is used to get the values of CSS properties like color, size,
font, etc.
● getLocation()– It is used to get the relative position of element present on
webpage.
● getRect()– It is used to fetch the element position with respect to element and
element size.
● getSize()– It is used to get the width and height of target element present on
webpage.
● getTagName()– It is used to get the tagname present on webpage.
● getText()– It is used to get the text present on webpage.
● isDisplayed()– It is used to check whether element is present on webpage or
not.
● isEnabled()– It is used to check whether button is enable or not.
● isSelected()– It is used to determine is that button is selected or not.
● sendkeys()– It is used to enter values inside the text field/ text box.
● submit()– It is used for click on submit button.
Why we Upcast the browser related child class to
WebDriver and not RemoteWebDriver class?
Example of Upcasting
WebDriver driver = new ChromeDriver();
● Converting a child object to super type is called upcasting or in other word
we can say creating object of child class and giving reference of super
class called as a Upcasting.
● In Selenium we use Upcasting so that we can execute the same script on
any browser.
● In Selenium, we can upcast browser object to RemoteWebDriver,
WebDriver, TakesScreenShot, JavaScriptExecutor, etc but a standard
practice is to upcast to WebDriver Interface.
● This is as per the Selenium coding standard set by the Selenium
community. As a testimonial, navigate to the below Selenium community
site and check for the text as mentioned in the image below for reference
image click on below URL.
● http://www.seleniumhq.org/projects/webdriver/
● WebDriver is the name of the key interface against which test should be
written in JAVA, the implementing classes one should use are listed
below:
● ChromeDriver, EventFiringWebDriver, FirefoxDriver, HtmlUnitDriver,
InternetExplorerDriver, PhantonJSDriver, REmoteWbDriver, SafariDriver
Where Did You Use Upcasting In Selenium?
WebDriver driver = new FirefoxDriver();
Explanation of the Above Statement
1. Webdriver is an interface in Selenium that extends the supermost
interface called SearchContext.
2. driver is the upcasted object or Webdriver interface reference variable
3. “=” is an assignment operator.
4. new is a keyword using which object of the FirefoxDriver class is created.
5. FirefoxDriver() is the constructor of FirefoxDriver class which initializes
the object and it will also launch the Firefox browser.
Steps To Install /Integrate Selenium Server To The Java
Project
1. Launch Eclipse and go to package explorer [Navigation path:- Window
Menu–> Show View–> Package Explorer].
2. Create a Java Project[ File–>New–>Java Project].
3. Right Click on Java Project and Add a new Folder with name
“driver”[File–>New–>Folder].
4. Copy geckodriver.exe file from your system and paste it into this driver
folder.
5. Simillarly, create another folder with name “jar” and copy Selenium
Standalone server. jar file into this jar folder.
6. Expand the jar folder and right click on Selenium Standalone server.jar file
–>select Build Path–>Select Add to Build Path.
7. As soon as you add any .jar files to build path , a new folder will be
available called “Reference Libraries” under the package explorer section
and you can see the .jar file is added to this “Reference liabraries”.
8. To remove the .jar file from the java build path is : Right click on the
project–> Build Path–>Configure Build Path–>Libraries Tab–> Add
External Jars–>Select the .jar file –>Apply–>OK.
For More Details Regarding Selenium Kindly Refer Our Next Part Of Selenium
Click here for more details:https://nrc24.com/selenium-2/
Demonstration Program for Upcasting
Concept(FirefoxDriver Class object to WebDriver
interface) and Accessing various methods of WebDriver
interface.
package Sample;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class UpcastingToWebDriver_LaunchBrowser {
public static void main(String[] args) throws
InterruptedException {
//setting the path of the gecko driver executable
System.setProperty("webdriver.gecko.driver",
".drivergeckodriver.exe");
//Launch the Firefox browser
WebDriver driver = new FirefoxDriver();
//Enter the url
driver.get("http://www.google.com");
//Get the title of the google page and print it on the
console
String title = driver.getTitle();
System.out.println("the title of the page is :"+ title);
//Get the URL of the google page and print it on the
console
String currentUrl = driver.getCurrentUrl();
System.out.println("the URL of the page is :"+ currentUrl);
//Get the source code of the google page and print it on
the console
String pageSource = driver.getPageSource();
System.out.println("the source code of the page is :"+
pageSource);
//Halt the program execution for 2 seconds
Thread.sleep(2000);
// Close the browser
driver.close();
}
FAQ’S
1.What is Selenium Used For?
Selenium is a Automation tool used for automation testing and it is supported
multiple languages like Java, C#, Ruby, Python, etc.
2.What is Salary Of Selenium Tester?
Basic Salary of selenium tester in india for fresher tester is minimum 3 lakh to 5
lakh per annum but its depend on the company to company and also depends on
the experience also if you have experience min. 2 to 3 years minimum salary for
that in india is around 7 to 8 lakh.
3.What are the Advantages of Selenium?
● It is Open Source (Source Code is Visible to All)
● It is Free of Cost
● Compatibility is possible
● It is Cross Platform tool.

More Related Content

PDF
Selenium Full Material( apprendre Selenium).pdf
PPTX
Selenium.pptx
PPTX
seldmskksnnisjals, sjnsjjs dsajdjsadsdjsnsjn.pptx
PPT
Selenium Java for Beginners by Sujit Pathak
PPT
Selenium
PDF
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
PPTX
Selenium presentation
Selenium Full Material( apprendre Selenium).pdf
Selenium.pptx
seldmskksnnisjals, sjnsjjs dsajdjsadsdjsnsjn.pptx
Selenium Java for Beginners by Sujit Pathak
Selenium
Mastering Selenium WebDriver: A Comprehensive Tutorial with Real-World Examples
Selenium presentation

Similar to Selenium for Tester.pdf (20)

DOCX
Step 8_7_ 6_5_4_3_2_ 1 in one_Tutorial for Begineer on Selenium Web Driver-Te...
PDF
Selenium - Introduction
PDF
Automation Testing using Selenium Webdriver
PPTX
Test Automation Using Selenium
PPTX
Protractor Testing Automation Tool Framework / Jasmine Reporters
PPTX
Selenium Web Driver Tutorial for Cross Browser Testing
PDF
selenium-webdriver-interview-questions.pdf
PDF
First steps with selenium rc
PDF
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
PDF
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
PDF
Selenium&scrapy
PPTX
Selenium.pptx
PDF
Selenium Webdriver Interview Questions
PPTX
Selenium web driver
PPTX
Step by step - Selenium 3 web-driver - From Scratch
PPTX
Basics of selenium containing features of selenium
PPTX
Selenium web driver
DOC
Selenium Automation Using Ruby
PPT
BCS Selenium Workshop
PPT
Selenium using C# by Yogesh Kumar
Step 8_7_ 6_5_4_3_2_ 1 in one_Tutorial for Begineer on Selenium Web Driver-Te...
Selenium - Introduction
Automation Testing using Selenium Webdriver
Test Automation Using Selenium
Protractor Testing Automation Tool Framework / Jasmine Reporters
Selenium Web Driver Tutorial for Cross Browser Testing
selenium-webdriver-interview-questions.pdf
First steps with selenium rc
Toolbox for Selenium Tests in Java: WebDriverManager and Selenium-Jupiter
Selenium & PHPUnit made easy with Steward (Berlin, April 2017)
Selenium&scrapy
Selenium.pptx
Selenium Webdriver Interview Questions
Selenium web driver
Step by step - Selenium 3 web-driver - From Scratch
Basics of selenium containing features of selenium
Selenium web driver
Selenium Automation Using Ruby
BCS Selenium Workshop
Selenium using C# by Yogesh Kumar
Ad

Recently uploaded (20)

PPT
Project quality management in manufacturing
PPTX
Welding lecture in detail for understanding
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PDF
PPT on Performance Review to get promotions
PDF
Digital Logic Computer Design lecture notes
PDF
composite construction of structures.pdf
PPTX
Construction Project Organization Group 2.pptx
PPTX
Geodesy 1.pptx...............................................
PDF
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PDF
Model Code of Practice - Construction Work - 21102022 .pdf
PPTX
Lecture Notes Electrical Wiring System Components
DOCX
573137875-Attendance-Management-System-original
PPTX
UNIT 4 Total Quality Management .pptx
PPTX
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PPTX
CH1 Production IntroductoryConcepts.pptx
PDF
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Project quality management in manufacturing
Welding lecture in detail for understanding
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPT on Performance Review to get promotions
Digital Logic Computer Design lecture notes
composite construction of structures.pdf
Construction Project Organization Group 2.pptx
Geodesy 1.pptx...............................................
PRIZ Academy - 9 Windows Thinking Where to Invest Today to Win Tomorrow.pdf
Automation-in-Manufacturing-Chapter-Introduction.pdf
Model Code of Practice - Construction Work - 21102022 .pdf
Lecture Notes Electrical Wiring System Components
573137875-Attendance-Management-System-original
UNIT 4 Total Quality Management .pptx
KTU 2019 -S7-MCN 401 MODULE 2-VINAY.pptx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
CH1 Production IntroductoryConcepts.pptx
TFEC-4-2020-Design-Guide-for-Timber-Roof-Trusses.pdf
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Ad

Selenium for Tester.pdf

  • 1. Selenium ● Selenium is opensource Web Automation Tool ● It is a tool which is helping to run the scripts using any programming language i.e. Java, Python, Ruby, C#, Java Scripts Etc. ● Advantages Of Selenium ● It is Open Source (Source Code is Visible to All) ● It is Free of Cost ● Compatibility is possible ● It is Cross Platform tool. ● Limitations of Selenium? ● It Doesn’t Support Window Bases Application Directly need third party tool to be integrated. ● We Can not Automate Desktop Bases Applications. ● We Cannot Automate Captcha. ● We Cannot Automate Barcode. ● We Cannot Automate File Uploading. ● We Cannot Automate Ad hoc testcases. Note: Selenium Community Developed Specific Tool Called Appium to Automate Windows Based Applications. Selenium Community Also Developed Tools To Test Mobile Applications 1. Selendroid – It Supports only Android Platform 2. Appium- It Supports Android Platform, MAC, Windows. Note: All Selenium related resources and documents can be found on the below website http://www.seleniumhq.org/
  • 2. · Why Selenium is so Popular and Demanding? Table of Contents ​ · Why Selenium is so Popular and Demanding? ​ ·What Are the Different Flavor’s/Components of Selenium? ​ How Selenium Perform Automation Testing On Browser? ​ Architecture of Selenium ​ Why we Upcast the browser related child class to WebDriver and not RemoteWebDriver class? ​ Where Did You Use Upcasting In Selenium? ​ Steps To Install /Integrate Selenium Server to the Java Project ​ Demonstration Program for Upcasting Concept(FirefoxDriver Class object to WebDriver interface) and Accessing various methods of WebDriver interface. ​ package Sample; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class UpcastingToWebDriver_LaunchBrowser { public static void main(String[] args) throws InterruptedException { //setting the path of the gecko driver executable System.setProperty("webdriver.gecko.driver", ".drivergeckodriver.exe"); //Launch the Firefox browser WebDriver driver = new FirefoxDriver(); //Enter the url driver.get("http://www.google.com"); //Get the title of the google page and print it on the console String title = driver.getTitle(); System.out.println("the title of the page is :"+ title); //Get the URL of the google page and print it on the console String currentUrl = driver.getCurrentUrl(); System.out.println("the URL of the page is :"+ currentUrl); //Get the source code of the google page and print it on the console String pageSource = driver.getPageSource();
  • 3. System.out.println("the source code of the page is :"+ pageSource); //Halt the program execution for 2 seconds Thread.sleep(2000); // Close the browser driver.close(); } ​ FAQ’S ​ 1.What is Selenium Used For? ​ 2.What is Salary Of Selenium Tester? ​ 3.What are the Advantages of Selenium? Selenium is so popular and demanding due to following features 1. It is an Opensource tool freely available on internet 2. No project cost involved 3. No license required 4. Can be easily customize to integrate with other Test management tools like JIRA, ALM, Bugzilla etc. 5. It supports almost 13 different software languages 6. Java 7. C# 8. Python 9. Ruby 10. Perl 11.PHP 12. Java script 13. Haskell 14. R 15. Dart 16. TCL 17. Objective C 18. Java script (Node JS) 6)It Supports All the browsers (Firefox, Chrome, IE, etc.) 7)It Supports almost all the operating System (MAC, Window, Linux, etc.)
  • 4. ·What Are The Different Flavor’s/Components Of Selenium? 1. Selenium Core – Developed by a company Called Thought Works way back in 2004 2. Selenium IDE– Supports only Mozilla Firefox and supports record and playback feature. 3. Selenium RC– Remote control version is 1.x used for parallel execution of automation scripts on multiple remote system. 4. Selenium Webdriver– version is 2.x and 3.x and 4.x Compatibility is possible in this and we can run the scripts in different languages as well. Note: Selenium Web driver version 3.x is no longer capable of running Selenium RC directly, rather it does through emulation and via an interface called WebdriverBackedSelenium but it supports Selenium Grid Directly. 5.Selenium Grid – It is one of the components of selenium that is used to run automation scripts on multiple system simultaneously. It is used to carry out compatibility testing on multiple browsers and platform. ● What Are the Key /Important topic of Selenium? ● Automation framework- Guidelines and Rules to write selenium code ● GitHub- Central Repository to store code ● Maven- Build dependency Tool for auto update of selenium version ● Selenium Grid- To test on multiple OS and browsers ● Jenkins- Continuous Integration ● TestNG- framework for generation of test reports and running multiple test scripts in one go 1. ● What Are the Softwares required for Selenium? ● Eclipse IDE – Oxygen Stable Version ● JDK 1.8 ● Selenium Server Standalone- 3.7.1(Stable version)
  • 5. ● From Where we have to download Selenium Eclipse Here it is the link given below http://www.seleniumhq.org/download ● Driver Executables ● For Firefox Browser ● The Name of driver executable – geckodriver.exe ● URL for download- https://github.com/mozilla/geckodriver/releases ● Version- 0.19 is recommended for Firefox browser with version 56.0 (selenium jar- 3.7.1) ● For Chrome Browser ● The name of the Driver executable is chromedriver.exe ● URL to Download- https://chromedriver.storage.googleapis.com/index.html?path=2.31 / ● Stable Version for Chrome version is 62.0 (Use chromedriver.exe with version 2.33) ● Browsers ● Firefox Version 57.0 ● Chrome Version 62.0 Note: To stop auto update of Firefox browser version, make sure to disconnect the internet connection and then install 54.0 version, now go to setting/option in firefox browser and check the below checkbox- Never Checks for updates
  • 6. Kindly Refer This image ● Application Under Test (AUT) ● Application Name- actiTIME ● Online URL of Application- https://demo.actitime.com/login.do ● Offline URL of Application- https://localhost:8080/login.do ● To Download actiTIME Application Use- https://www.actitime.com/download.php How Selenium Perform Automation Testing On Browser? OR Architecture of Selenium
  • 7. Architecture Of Selenium ● Since Selenium supports multiple languages such as Java, Python, C#, etc. we can develop automation scripts in all the supported languages, this is known as language binding or client binding. ● When we execute the selenium code, request goes to the selenium standalone server(also known as Selenium Web driver Server), which further process the request based on the input received from the client binding and perform specific actions on the respective browsers using the browser specific driver executables, Ex. geckodriver.exe for Firefox browser and chromedriver.exe for chrome browser and so on… ● Driver Executable uses a protocol called JSON Wire Protocol to communicate with related browsers. here JSON stands for (Java Script Object Notation). ##Selenium Java Architecture in Details Explanation of Above image Search Context is the super most and oldest interface present in selenium WebDriver having two abstract methods those are findElement() method and
  • 8. findElements() method this two methods are inherited to Webdriver interface using extends keyword so that total 13 abstract methods are present in WebDriver interface because Webdriver Interface is having already its own 11 abstract methods To provide definition/implementation for 13 abstract methods inside interface we are using Remote WebDriver Implementation class, All Browser classes are inherited to Remote WebDriver Class. Here, To Achieve runtime Polymorphism and to Access 13 abstract methods in WebDriver interface we are following Concept of upcasting. TakesScreenshot interface is used to handle the screenshot in selenium along with that to handle the screenshot in selenium we have to use one method that is getScreenshotAS method. But here the problem is that in selenium architecture we have to connect or typecast the TakesScreenshot interface for that we have to use Typecast Operator. Next is JavaScriptExecutor interface this interface is used to scroll handling in selenium along with this interface we have to use one method to handle scroll i.e. ExecuteScript method here also we have to do typecasting for that we have to use Typecast operator. Note: All the above mentioned interfaces and classes are present in a package called as “org.openqua.selenium”. To view ant information about Selenium interfaces, classes and methods navigate to the below page https://github.com/SeleniumHQ/selenium/tree/master/java/client/src/org/openqa/s elenium After Opening this URL below path you have to follow
  • 9. ● List Of All the Methods Present in below Interfaces Of Selenium WebDriver 1. Search Context Interface ● findElement ()-used to find the element which is present on webpage ● findElements()-used to find the lists of elements which is present on webpage 2. WebDriver Interface ● get()– It is used to open URL/Application, return type of this method is Void. ● close()– It is used to close the current browser window, return type of this method is Void. ● getTitle()– It is used to get Title of Current Webpage, return type of this method is String. ● getPageSource()– It is used to get the source code of the current webpage. ● getCurrentURL()– It is used to get the URL of current webpage. ● getWindowHandle()– It is used to get the window handle of current browser window. ● getWindowHandles()– It is used to get the window handle of all the browser window. ● manage()– It is used to manage browser window.
  • 10. ● navigate()– It is alternative method for get method and it is used to navigate from one page to another, one page to previous page and also used to refresh the current webpage. ● quit()– It is used to close all browser window. ● switchTo()– It is used to switch our control from webpage to popups, forms, window etc. ● Method of TakesScreenshot Interface ● getscreenshotAS()– It is used to handle the screenshot in selenium. ● Methods of JavaScriptExecutor Interface ● executeScript() ● executeAsynScript()– We dont use this method for automation. ● Methods of WebElement Interface ● clear()– It is used to clear the value inside the text field/ text box. ● click()– It is used to click buttons, links, radio buttons, checkbox, etc. ● getAttribute()– it is return the value of attributes of webelement. ● getCSSValue()– It is used to get the values of CSS properties like color, size, font, etc. ● getLocation()– It is used to get the relative position of element present on webpage. ● getRect()– It is used to fetch the element position with respect to element and element size. ● getSize()– It is used to get the width and height of target element present on webpage. ● getTagName()– It is used to get the tagname present on webpage. ● getText()– It is used to get the text present on webpage. ● isDisplayed()– It is used to check whether element is present on webpage or not. ● isEnabled()– It is used to check whether button is enable or not. ● isSelected()– It is used to determine is that button is selected or not. ● sendkeys()– It is used to enter values inside the text field/ text box. ● submit()– It is used for click on submit button. Why we Upcast the browser related child class to WebDriver and not RemoteWebDriver class? Example of Upcasting WebDriver driver = new ChromeDriver();
  • 11. ● Converting a child object to super type is called upcasting or in other word we can say creating object of child class and giving reference of super class called as a Upcasting. ● In Selenium we use Upcasting so that we can execute the same script on any browser. ● In Selenium, we can upcast browser object to RemoteWebDriver, WebDriver, TakesScreenShot, JavaScriptExecutor, etc but a standard practice is to upcast to WebDriver Interface. ● This is as per the Selenium coding standard set by the Selenium community. As a testimonial, navigate to the below Selenium community site and check for the text as mentioned in the image below for reference image click on below URL. ● http://www.seleniumhq.org/projects/webdriver/ ● WebDriver is the name of the key interface against which test should be written in JAVA, the implementing classes one should use are listed below: ● ChromeDriver, EventFiringWebDriver, FirefoxDriver, HtmlUnitDriver, InternetExplorerDriver, PhantonJSDriver, REmoteWbDriver, SafariDriver Where Did You Use Upcasting In Selenium? WebDriver driver = new FirefoxDriver(); Explanation of the Above Statement 1. Webdriver is an interface in Selenium that extends the supermost interface called SearchContext. 2. driver is the upcasted object or Webdriver interface reference variable 3. “=” is an assignment operator. 4. new is a keyword using which object of the FirefoxDriver class is created. 5. FirefoxDriver() is the constructor of FirefoxDriver class which initializes the object and it will also launch the Firefox browser. Steps To Install /Integrate Selenium Server To The Java Project
  • 12. 1. Launch Eclipse and go to package explorer [Navigation path:- Window Menu–> Show View–> Package Explorer]. 2. Create a Java Project[ File–>New–>Java Project]. 3. Right Click on Java Project and Add a new Folder with name “driver”[File–>New–>Folder]. 4. Copy geckodriver.exe file from your system and paste it into this driver folder. 5. Simillarly, create another folder with name “jar” and copy Selenium Standalone server. jar file into this jar folder. 6. Expand the jar folder and right click on Selenium Standalone server.jar file –>select Build Path–>Select Add to Build Path. 7. As soon as you add any .jar files to build path , a new folder will be available called “Reference Libraries” under the package explorer section and you can see the .jar file is added to this “Reference liabraries”. 8. To remove the .jar file from the java build path is : Right click on the project–> Build Path–>Configure Build Path–>Libraries Tab–> Add External Jars–>Select the .jar file –>Apply–>OK. For More Details Regarding Selenium Kindly Refer Our Next Part Of Selenium Click here for more details:https://nrc24.com/selenium-2/ Demonstration Program for Upcasting Concept(FirefoxDriver Class object to WebDriver interface) and Accessing various methods of WebDriver interface. package Sample; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class UpcastingToWebDriver_LaunchBrowser {
  • 13. public static void main(String[] args) throws InterruptedException { //setting the path of the gecko driver executable System.setProperty("webdriver.gecko.driver", ".drivergeckodriver.exe"); //Launch the Firefox browser WebDriver driver = new FirefoxDriver(); //Enter the url driver.get("http://www.google.com"); //Get the title of the google page and print it on the console String title = driver.getTitle(); System.out.println("the title of the page is :"+ title); //Get the URL of the google page and print it on the console String currentUrl = driver.getCurrentUrl(); System.out.println("the URL of the page is :"+ currentUrl); //Get the source code of the google page and print it on the console String pageSource = driver.getPageSource(); System.out.println("the source code of the page is :"+ pageSource); //Halt the program execution for 2 seconds Thread.sleep(2000); // Close the browser driver.close(); }
  • 14. FAQ’S 1.What is Selenium Used For? Selenium is a Automation tool used for automation testing and it is supported multiple languages like Java, C#, Ruby, Python, etc. 2.What is Salary Of Selenium Tester? Basic Salary of selenium tester in india for fresher tester is minimum 3 lakh to 5 lakh per annum but its depend on the company to company and also depends on the experience also if you have experience min. 2 to 3 years minimum salary for that in india is around 7 to 8 lakh. 3.What are the Advantages of Selenium? ● It is Open Source (Source Code is Visible to All) ● It is Free of Cost ● Compatibility is possible ● It is Cross Platform tool.