QA Automation - Selenium & Core Java
Course Summary:
In detailed, easy, step by step, real time, practical and well organized Course
Not required to have any prior programming knowledge, as all the prerequisites such as Java will be explained from basics
Training videos and notes will be shared
Downloadable automation frameworks, programming code and other files will be provided
Real time End to End eCommerce Automation Project will be explained (Course Differentiator)
Course Contents:
Introduction to Selenium
Manual Testing
Automation Testing
How can a Tool perform Testing ?
Selenium
Types of Applications that Selenium can automate
Selenium is a free tool
Different Browsers supported by Selenium
Different Operating Systems supported by Selenium
Different Programming Languages supported by Selenium
Different components in Selenium
Different versions of Selenium
Pre-requisites required for learning Selenium
Firebug & HTML
Installing older version of Firefox Browser
Installing FireBug
HTML Basics
Introduction to HTML
HTML Elements & Tags
Structure of HTML
Demonstrating of different HTML Elements
Creating and Saving an HTML file
Creating Structure for a Web Page
Adding Title to the Web Page
Different sizes of Page Heading
Selenium Java Training | QAFox.com | 1
Body section of Web Page
Adding a link to a Web Page
Displaying a ruler on the Web Page
Creating line breaks in HTML
Creating HTML Table
Creating Order lists
Creating Unordered lists
Creating Bold Text
Creating Italicized Text
Creating Underlined Text
Viewing Page Source in a Browser
FireBug
Web Developer Tool
Editing HTML elements using FireBug
Inspecting UI elements using FireBug
Selenium IDE
What is Selenium IDE ?
Record and Playback Tool
Installing Selenium IDE
Launching Selenium IDE
Recording Test Cases using Selenium IDE
Saving Test Cases in Selenium IDE
Playing the Test Cases in Selenium IDE
Disadvantages of Selenium IDE
Locators
Introduction to Locators
Different types of Locators
Demonstrating different types of Locators
Priority of Locators
Xpath Expressions
Introduction to Xpath Expressions
Types of Xpath Expressions
Absolute Xpath
Demonstrating Absolute Xpath Expressions
Using Firepath for Auto generating Xpath Expressions
Disadvantages of using Absolute Xpath Expressions
Selenium Java Training | QAFox.com | 2
Relative Xpath Expressions
Difference between Absolute and Relative Xpath Expressions
Demonstrating Relative Xpath Expressions
Using Firepath for auto generating Relative Xpath Expressions
Advantages of Relative Xpath Expressions
Xpath Functions
Demonstrating Xpath Functions
Xpath Axes
Demonstrating Xpath Axes
CSS Selectors
Introduction to CSS Selectors
Types of CSS Selectors
Absolute CSS Selectors
Demonstrating Absolute CSS Selectors
Relative CSS Selectors
Difference between Absolute and Relative CSS Selectors
Demonstrating Relative CSS Selectors
Using Firepath for auto generating Relative CSS Selectors
Core Java
Introduction to Java
Installing Java
Installing Eclipse IDE
Creating Java Project in Eclipse IDE
Executing Java Project in Eclipse IDE
Understanding Java Programs
Compiler Errors
Print Statements
Using print
Using println
Comments
Single Line Comments
Multi Line Comments
Variables
What are Variables ?
Purpose of Variables in Java
Selenium Java Training | QAFox.com | 3
Different types of Variables
Local Variables
Instance Variables
Data Types
What are Data Types ?
Different Types of Data Types in Java.
byte
short
int
long
float
double
char
boolean
Demonstrating different Data Types in Java.
Operators
What are Operators ?
Different Types of Operators in Java.
Arithmetic Operators
Relational Operators
Logical Operators
Assignment Operators
Assignment Operator
Compound Assignment Operators
Conditional Operator
Demonstrating the Operators in Java.
Flow Control
What is Flow Control ?
Different types of Flow Control Statements in Java
Selection Statements
if statements
if else statements
if .. else if .. Else statements
switch statements
Selenium Java Training | QAFox.com | 4
Iterative Statements
While loop
Do while loop
For loop
For each loop
Transfer Statements
break statement
continue statement
return statement
try, catch & finally statements
Methods
What are Methods in Java ?
What is the Purpose of Methods in Java ?
main() method
Creating non-main methods
Creating multiple methods inside the same Class
Method Calling
Parameterized Methods
Return Type
Arrays
What are Arrays in Java ?
Types of Arrays
Single Dimensional Arrays
Demonstrating Single Dimensional Arrays
Declaring Single Dimensional Arrays
Creating Single Dimensional Arrays
Initializing Single Dimensional Arrays
Accessing Single Dimensional Arrays
Two Dimensional Arrays
Demonstrating Two Dimensional Arrays
Declaring Two Dimensional Arrays
Creating Two Dimensional Arrays
Initializing Two Dimensional Arrays
Accessing Two Dimensional Arrays
Three Dimensional Arrays
Object Arrays
Disadvantages of Arrays
Selenium Java Training | QAFox.com | 5
Strings
What are Strings ?
Purpose of Strings in Java
Shortcut representation of Strings
Actual representation of Strings
Concatenating Two Strings
Demonstrating Pre-defined methods of Strings (equals(), length(), substring(), trim(), indexof() and split() )
Wrapper Classes and Primitive Data types
What are wrapper classes ?
What are primitive data types ?
Different Primitive Data Types
Different Wrapper Classes
Converting Primitive data types to Objects
Demonstrating Wrapper Classes and Primitive Data Types
Constructors
What are Constructors ?
Difference between Constructors and Methods
Purpose of Constructors in Java
Demonstrating initialization of Variables without Constructors
Demonstrating initialization of Variables with Constructors
this keyword
Purpose of this keyword in Java
Using this keyword with methods
Using this keyword with constructors
Demonstrating the program using this keyword with methods
Demonstrating the program using this keyword with constructors
Overloading
What is Overloading in Java ?
Method Overloading
Constructor Overloading
Demonstrating Method Overloading
Demonstrating Constructor Overloading
Selenium Java Training | QAFox.com | 6
Packages
What are Packages ?
Purpose of Packages in Java
Default Packages
Creating Packages
Demonstrate Packages
Demonstrate accessing variables and methods in the same package
Demonstrate accessing variables and methods defined in other packages
Inheritance
What is Inheritance ?
Purpose of Inheritance in Java
Super Class / Parent Class
Sub Class / Child Class
Using extends keyword
Demonstrate a Child class inheriting the properties of a Parent Class
Overriding
What is Overriding ?
Purpose of Overriding in Java
Method Overriding
Creating Objects and accessing Overridden Properties
Demonstrating Overriding
Modifiers
What are Modifiers in Java ?
Purpose of Modifiers
Types of Modifiers
Access Modifiers
private
public
protected
default
Non-Access Modifiers
static
final
abstract
Selenium Java Training | QAFox.com | 7
Interfaces
What are Interfaces ?
Purpose of Interfaces in Java
Difference between Classes and Interfaces
Creating an Interface
Creating variables in Interfaces
Creating methods in Interfaces
Using implements keyword
Demonstrating Interfaces
Assigning Class Objects to Interfaces
Exceptional Handling
What is Exceptional Handling ?
What are Exceptions ?
Purpose of Exceptional Handling
Using try catch blocks
Exceptional Hierarchy (Throwable, Exception, ArithmeticException and ArrayIndexOutOfBoundsException Classes)
Exception Types
Checked Exceptions
Unchecked Exceptions
Using throws keyword
Handling Files
Representing Files in Java
Creating Files in Java
Reading text from Files
Demonstrating File Handling in Java
Collections Framework
Drawback of Arrays
Advantage of Collection Framework over Arrays
Hierarchy of Collections Framework
Types of Collections framework
Array List
HashSet
Hash Map
Iterator
Iterator interface versus iterator() method
Selenium Java Training | QAFox.com | 8
Demonstrating the Collection Frameworks using:
for() loop
For-each loop
Iterator() method
hasNext() and next() methods of Iterator interface
Selenium WebDriver
Introduction
Downloading Selenium WebDriver
Configuring Selenium WebDriver
Downloading Selenium Jar files
Adding the Jar files to the Java Project
Configuring the Jar files with the Java Project
Executing Sample Selenium Automation code to confirm
Selenium WebDriver and Firefox Browser
Checking the compatibility of Firefox Browser version with Selenium WebDriver Version
Finding the compatibility details in Change logs
Google Search for finding compatibility
Creating object for FirefoxDriver class
Creating object for FirefoxDriver class and assigning it to WebDriver interface
Selenium WebDriver API
get()
manage().window().maximize()
findElement(), findElements() and By Class and its predefined methods
id()
name()
className()
linkText()
cssSelector()
xpath()
WebElement class
click()
sendKeys()
clear()
getText()
getTitle()
getCurrentURL()
close()
quit()
getAttribute()
isDisplayed()
Selenium Java Training | QAFox.com | 9
isEnabled()
isSelectec()
navigate()
getPageSource()
findElements()
Handling Multiple Windows
getWindowHandles()
switchTo()
Demonstrate handling multiple windows using getWindowHandles() and switchTo() methods
Handling Alerts
switchTo().alert()
getText()
accept()
switchTo().defaultContent()
Demonstrate handling Alerts using the above methods
Waiting Mechanism in Selenium WebDriver
Importance of Waiting in Selenium WebDriver
Using Thread.sleep()
Implicit Wait
Explicit Wait
Handling Dropdown fields and Multi Selection Boxes
Select Class
selectByVisibleText() with Dropdown fields
selectByVisibleText() with Multi Selection Boxes
deselectByVisibleText() with Multi Selection Boxes
Handling Frames
Introduction to Frames
Frames in HTML
Checking Frames on any Application pages
Frames and NoSuchElementException
Switching to frames
Switching to default page
Selenium Java Training | QAFox.com | 10
Handling Lightbox
Introduction to Lightboxes in HTML
Lightboxes in HTML
Demonstrate handling Lightboxes using Selenium WebDriver
Selenium 2 and Chrome Browser
Checking Selenium 2 compatibility with Chrome Browser
Demonstrate Selenium 2 scripts on Chrome Browser
Selenium 2 and Internet Explorer Browser
Checking Selenium 2 compatibility with Internet Explorer Browser
Demonstrate Selenium 2 scripts on Internet Explorer Browser
Selenium 3
Introduction
Difference between Selenium 2 and Selenium 3
Executing Selenium 3 Scripts on Firefox Browser
Checking the compatibility of Firefox Browser with Selenium 3
Configuring the project with geckodriver.exe
Demonstrate executing the Selenium 3 scripts on Firefox Browser
Executing Selenium 3 Scripts on Chrome Browser
Checking the compatibility of Chrome Browser with Selenium 3
Demonstrate executing the Selenium 3 scripts on Chrome Browser
Executing Selenium 3 Scripts on IE Browser
Checking the compatibility of IE Browser with Selenium 3
Demonstrate executing the Selenium 3 scripts on IE Browser
Advantage of using WebDriver interface in Selenium programs
Framework Concepts - Properties Files
Purpose of properties files in Selenium Automation
Demonstrate a Java program which reads the data from a Properties file
Load the object reference of the FileInputStream class using load() method of Properties class
Retrieve the values from the properties file using the getProperty() method of Properties class and print
Demonstrate a Selenium program, which reads the Project configuration data like website details, browser etc from the Properties
file
Advantage of using Properties files
Selenium Java Training | QAFox.com | 11
Framework Concepts - POI API
Purpose of POI API in Selenium Automation
Understand the basics of POI API
Demonstrate POI API
Framework Concepts - Log4j API
Purpose of Log4j API in Selenium Automation
Implement logging in Selenium Automation code using System.out.println()
Disadvantages of SOP logging
Advantages of Log4j logging
Implementing Log4j in Selenium Automation
Framework Concepts - TestNG API
Purpose of TestNG in Selenium Automation
Configure the Project with TestNG JAR file
TestNG Annotations
@Test
@BeforeMethod
@AfterMethod
@BeforeClass
@AfterClass
Executing the Java class files in batch using TestNG
Failing @Test annotated methods
TestNG Assertions
assertEquals()
assertTrue()
assertFalse()
fail()
Parameterizing tests using TestNG's @DataProvider annotation
@DataProvider
dataProvider
Demonstrate a program which parameterizes
Framework Concepts - ANT
Purpose of ANT
Downloading and Configuring ANT
build.xml file and its execution using ANT
Demonstrate ANT
Selenium Java Training | QAFox.com | 12
Framework Concepts - Maven
Purpose of Maven
Demonstrate Maven
Framework Concepts - Taking Screenshots in Selenium
Demonstrate taking Screenshots in Selenium
Framework Concepts - Extent Reports
Demonstrate Extent Reports
Framework Concepts - TestNG (Continued)
throw
Skipping a test in TestNG
Data Driven Framework
Data Driven Testing
Data Driven Framework
Build the Data Driven Framework from scratch
Demonstrate this Framework on a sample application
Download Framework
Page Object Model and Page Factory
Build the Page Object Model and Page Factory from scratch
Demonstrate this Design Pattern on a sample application
Download Page Object Model and Page Factory implemented Framework
Cucumber & BDD Framework
Cucumber
BDD
Demonstrate Cucumber and BDD in Selenium Automation
Real time eCommerce Automation Project (Differentiator from other Selenium courses in the market)
End to End Real time eCommerce Automation Project
Selenium Java Training | QAFox.com | 13