Selenium Videos – Group One

Hi all,

Thanks for purchasing Selenium Videos from QAFox. Please find the course videos and notes below:

Note: People who have purchased Selenium videos needs to login to their Gmail address (i.e. The one they have provided while purchasing the videos) and click on the below buttons (i.e. for Videos and Notes) to open them in the same browser window where your Gmail address is logged in.

Session 1: Introduction to Selenium (2 hours)

Selenium Prerequisites What is Selenium ? Different Browsers support
What is Manual Testing ? Different automations tools What is Selenium IDE ?
What is Automation Testing ? Selenium Automation Tools What is Selenium RC ?
What is Regression Testing ? Selenium Automation capabilities What is Selenium WebDriver ?
Why Automation ? Is Selenium commercial ? What is Selenium Grid ?
Role of Java in Selenium Programming languages support History of Selenium
Automation Basics Operating Systems support Different versions of Selenium

Session 2: Firebug, HTML and Selenium IDE (2 hours 20 minutes)

Firefox Browser Installation About FireBug Manually Create Test Cases using IDE
FireBug Add-on Installation FireBug options Highlight the elements using IDE
Launching FireBug Add-on Inspecting Elements using FireBug Saving Selenium IDE Test Cases
HTML Basics Selenium IDE Installation Executing IDE Test Cases as Test Suite
Structure of HTML Launching Selenium IDE
HTML Examples Record & Playback using Selenium IDE

Session 3: Selenium IDE – Part Two (2 hours 5 minutes)

Selenium IDE Advantages Auto Complete Feature Edit Menu options
Selenium IDE Disadvantages Selenium IDE Components Actions Menu options
Selenium IDE Features File Menu options

Session 4: Selenium IDE – Part Three (2 hours 18 minutes)

Options Menu Recording on opening Selenium IDE Plug-ins Tab
Selenium IDE options Recording Absolute URL File Logging Example Plugin
Setting default timeout value Enabling experimental features Clipboard Format options
Selenium core extensions Default HTML format Clear History options
Remembering base URL File Menu options Resetting IDE window
Automatically recording assert title Formats Tab

Session 5: Selenium IDE – Part 4, HTML – Part 2, Locators and other pre-requisites (4 hours 10 minutes)

Help Menu options of Selenium IDE Pre-requisites External CSS
Base URL bar Different types of Locators XML for Selenium
Tool Bar options Other HTML concepts XPATH for Selenium
Test Case pane CSS for Selenium JavaScript for Selenium
Test Case pane Inline CSS
Introduction to Locators Internal CSS

Session 6: DOM and Selenium IDE – Part 5 (2 hours 53 minutes)

Document Object Model Locating elements using DOM Selenium IDE Selenese Commands
Purpose of DOM Selenium IDE Editor Pane Handling Popups using IDE
Accessing DOM using JavaScript Table Tab Handling AJAX Applications using IDE
DOM functions Command Dropdown field Assert versus Verify commands

Session 7: Selenium IDE – Part 6 (2 hours 58 minutes)

Other Selenium IDE Selenese commands TestNG Results plug-in Advantages of Selenium IDE
Highlight elements plug-in Categorizing Selenese commands Disadvantages of Selenium IDE
Locator Builders tab Right Click options

Session 8: Locators – Part 2 (1 hour 40 minutes)

Locators in detailed identifier locator xpath expressions
Different types of Locators link locator Types of xpath
id locator class locator Absolute xpath
name locator xpath locator

Session 9: Locators – Part 3 (2 hours 56 minutes)

Relative/Direct xpath contains() xpath function xpath operators
Advantages of Relative xpath starts-with() xpath function xpath optimization
Locating elements using Relative xpath last() xpath function Generating xpath using Firepath
xpath functions position() xpath function
text() xpath function xpath AXES xpath Syntax

Session 10: Locators – Part 4 (2 hours 51 minutes)

CSS Locators CSS Selectors optimization Locating elements using DOM
Absolute CSS Selectors Generating CSS Selectors using Firepath Absolute DOM
Relative CSS Selectors DOM Locators Relative DOM
Locating elements using CSS Selectors DOM and JavaScript

Session 11: Concluding Locators and Introducing Java (2 hours 9 minutes)

Locators Priority Chrome Developer Tools Non-Object Oriented Languages
Categorizing Locators IE Developer Tools Class
Attribute based Locators Locators and Selenium WebDriver Object
Structure Dependent Locators Introduction to Java Importance of Java in Selenium
Developer Tools Demonstrating Sample Java Program Difference between JDK, JRE and JVM
Firefox Developer Tools Object Oriented Programming Language Java Versions

Session 12: Java – Part 2 (2 hours 31 minutes)

Downloading Java JDK Configuring Java JDK on windows Machine Compiling and Running Java Program using TextPad editor
Downloading Java JRE Java Path Setting Eclipse IDE
Installing Java JDK Editors for Java Code Development Downloading Eclipse IDE
Verifying Java JDK Installation TextPad Launching Eclipse IDE
Compiling and Running Java Program using Command Prompt Downloading TextPad Creating Java Projects in Eclipse IDE Installing TextPad Compiling and Running Java Program using Eclipse IDE

Session 13: Java – Part 3 (2 hour 19 minutes)

Java Project Benefits of Eclipse IDE JRE System Library
TextPad versus Eclipse IDE Other IDE Editors in the market Eclipse IDE Auto Compiling Feature
Java Project Folder Structure Understanding a Simple Java Program Running Java Programs in Eclipse IDE
Java Project Naming Convention Create a Class Viewing Output in Eclipse IDE
src folder Creating main method Print Statements in Java
setting folder Other details on Eclipse IDE Comments in Java
classpath Navigating to Java Project Workspace

Session 14: Java – Part 4 (2 hour 9 minutes)

Storing Data using Java Local Variables Storing boolean values
Variables Instance Variables Storing text
Data Types Storing integer values Type mismatch
Literals Storing decimal values Auto Type conversion
Types of Variables Storing character values

Session 15: Java – Part 5 (2 hours 15 minutes)

Arrays Literals String Literals
Primitive Data Types Boolean Literals Numeric Literals
Non-Primitive Data Types Character Literals Escape Characters

Session 16: Java – Part 6 (2 hours 4 minutes)

Operators Increment Operator Less Than Or Equal to Operator
Categorizing the Operators Decrement Operator Logical Operators
Arithmetic Operators Relational Operator Logical AND Operator
Addition Operator Equal to Operator Logical OR Operator
Subtraction Operator Not Equal to Operator Logical NOT Operator
Multiplication Operator Greater Than Operator Assignment Operators
Division Operator Less Than Operator Simple Assignment Operator
Modulus Operator Greater Than Or Equal to Operator

Session 17: Java – Part 7 (2 hours 21 minutes)

Compound Assignment Operators Other Operators Operators and Print Statements
Add AND Assignment Operator Conditional Operator Decision Making Structures
Subtract AND Assignment Operator Operator Precedence if statements
Multiply AND Assignment Operator Bitwise Operators if …. else statements
Dividing AND Assignment Operator Bitwise Compound Assignment Operator nested if statements
Modulus AND Assignment Operator instanceof Operator switch statements

Session 18: Java – Part 8 (1 hour 58 minutes)

Flow Control Statements do while loop Using break statements in switch case
Different Flow Control Statements for loop Using break statements in loops
Selection Statements for-each loop Using break statements in labeled blocks
Iterative Statements Transfer Statements continue statements
while loop break statements Using continue statements in loops

Session 19: Java – Part 9 (2 hours 21 minutes)

Methods Parameters Array Declaration
main() method Return Type Array Creation
Creating user defined methods Class Array Initialization
Naming convention of methods Object Shortcut Representation of Array
Parameterized methods Arrays ArrayIndexOutOfBounds Exception
Arguments Single Dimension Arrays

Session 20: Java – Part 10 (2 hours 25 minutes)

Two Dimensional Array 3D Array Declaration Disadvantages of Arrays
2D Array Declaration 3d Array Creation Variables
2D Array Creation 3D Array Initialization Local Variables
2D Array Initialization Accessing 3D Array Elements Instance Variables
Accessing 2D Array Elements 3D Arrays and length predefined variables static Variables
2D Arrays and length predefined variable 3D Arrays and for loops Primitive type variables
2D Arrays and for loops Shortcut representation of 3D Array Class type variables
Shortcut representation of 2D Array Arrays and Data Types Array type variables
Three Dimensional Array Arrays and Object Class

Session 21: Java – Part 11 (2 hours 9 minutes)

static modifier Constructors this keyword and Constructors
static methods Constructors and Object Creation Method overloading
non-static methods this keyword Constructor overloading
Dealing Multiple Classes this keyword and Methods

Session 22: Java – Part 12 (2 hours 23 minutes)

packages Hierarchy of Packages Method Overriding
Advantages of Packages Inheritance super keyword
Default Packages extends keyword super keyword and methods
Package Creation Inheritance Rules super keyword and constructors

Session 23: Java – Part 13 (2 hours 15 minutes)

Objects Returning Objects Instance blocks
Assigning Objects Passing Objects to Constructors static blocks
Dynamic Method Dispatch Nameless Objects
Passing Objects as Arguments Classes

Session 24: Java – Part 14 (1 hour 51 minutes)

Modifiers Using public with Variables and Methods Using final with Variables
Using Access Modifiers with Classes Using private with Variables and Methods Using final with Classes
Using public with Classes Using default with Variables and Methods Using final with methods
Using private with Classes Using protected with Variables and Methods Using abstract with methods
Using default with Classes Non-Access Modifiers Using abstract with Classes
Using Access Modifiers with Variables and Methods static Non-Access Modifier

Session 25: Java – Part 15 (1 hour 29 minutes)

Interfaces Using implements keywords Interfaces and Object creation
Interface Syntax Interfaces versus abstract classes Working with Interfaces
Interface Creation Instance variables in Interfaces

Session 26: Java – Part 16 (1 hour 56 minutes)

Exceptional Handling Exception Checked Exceptions
try catch blocks Throwable Unchecked Exceptions
Exceptions Hierarchy Multiple Catch Blocks finally
Arithmetic Exception Printing Exception Details
ArrayIndexOutOfBoundsException Using throw

Session 27: Java – Part 17 (2 hours 14 minutes)

Exception Handling – Part 2 Strings Converting integer to String
Creating a file String Class methods Handling Files
Reading from Files Converting String to integer File Class

Session 28: Java – Part 18 (2 hours 37 minutes)

Wrapper Classes UnBoxing List Interface
Primitive Data Types AutoBoxing ArrayList
Wrapping AutoUnBoxing Map Interface
Purpose of Wrapping Collection Framework HashMap
Different types of Wrapper Classes Collections Calling the methods using String text
Boxing Hierarchy of Collections Framework Classes and Interfaces

Session 29: Selenium WebDriver – Part 1 (1 hour 31 minutes)

Selenium Components Selenium WebDriver versus Selenium RC JAR files
Selenium IDE Selenium 1 Purpose of JAR files
Selenium RC Selenium 2 Creating a JAR files in Eclipse IDE
Drawbacks of RC Downloading Selenium 2
Selenium WebDriver Configuring Selenium 2

Session 30: Selenium WebDriver – Part 2 (1 hour 20 minutes)

Working with different browsers Working with Chrome browser Better way to create driver Object
Working with Firefox browser Working with Internet Explorer browser

Session 31: Selenium WebDriver – Part 3 (1 hour 34 minutes)

Selenium and Browser Compatibility Internet Explorer compatibility with Selenium 2 version Selenium WebDriver API Commands
Firefox browser compatibility with Selenium 2 version Selenium API get() command
Chrome browser compatibility with Selenium 2 version API manage().window().maximize()

Session 32: Selenium WebDriver – Part 4 (1 hour 20 minutes)

By Class linkText() method of By Class WebDriver interface
Predefined methods of By Class partialLinkText() method of By Class WebElement interface
id() method of By Class cssSelector() method of By Class Predefined methods of WebDriver and WebElement interfaces
name() method of By Class xpath() method of By Class findElement() method of WebDriver interface
className() method of By Class tagName() method of By Class

Session 33: Selenium WebDriver – Part 5 (1 hour 9 minutes)

click() method of WebElement interface Using click() with a text box field Using sendKeys() with text area field
Using click() with a link Using click() with a text area field Using sendKeys() with dropdown field
Using click() with a button sendKeys() method of WebElement interface clear() method of WebElement interface
Using click() with a checkbox option Using sendKeys() with text box field Using clear() with text box field
Using click() with a radio option Using sendKeys() with password field Using clear() with text area field

Session 34: Selenium WebDriver – Part 6 (1 hour)

getText() method of WebElement interface getAttribute() method of WebElement interface Retrieving all the links in a section
getTitle() method of WebDriver interface findElements() method of WebDriver interface Clicking all the links in a section one after the another
getCurrentURL() method of WebDriver interface findElements() method of WebElement interface StaleElementReferenceException
close() method of WebDriver interface Retrieving all the links on a page
quit() method of WebDriver interface Retrieving all the text boxes on a page

Session 35: Selenium WebDriver – Part 7 (1 hour 16 minutes)

findElements() method of WebDriver interface Retrieving all the textboxes on a page Reasons behind StaleElementReferenceException
findElements() method of WebElement interface Retrieving all the links in a section Two Ways to avoid StaleElementReferenceException
ArrayList Retrieving all the links in a section and clicking one after the other Best way to avoid StaleElementReferenceException
Retrieving all the links on a page StaleElementReferenceException

Session 36: Selenium WebDriver – Part 8 (1 hour 17 minutes)

findElements() of WebDriver interface Improvising the best way Using findElements() with radio options
Best way to resolve the StaleElementReferenceException findElements() of WebElement interface Using findElements() with checkbox options

Session 37: Selenium WebDriver – Part 9 (1 hour 10 minutes)

isDisplayed() method of WebElement interface Using isSelected() with radio options Using navigate() to refresh the page
Purpose of isDisplayed() method Using isSelected() with checkbox options getPageSource() method of WebDriver interface
isEnabled() method of WebElement interface navigate() method of WebDriver interface Purpose of getPageSource()
Purpose of isEnabled() method Using navigate() to navigate backward
isSelected() method of WebElement interface Using navigate() to navigate forward

Session 38: Selenium WebDriver – Part 10 (1 hour 35 minutes)

Handling Multiple Windows iterator() method of Collection interface Difference between ArrayList and HashSet classes
Iterator interface Set interface getWindowHandles() of WebDriver interface
hasNext() of Iterator interface HashSet class switchTo() of WebDriver interface
next() of Iterator interface add() method of HashSet

Session 39: Selenium WebDriver – Part 11 (1 hour 1 minute)

Handling Alerts Usage of Xpath in handling Web Tables Retrieving the data in third column of the table
Alert interface Retrieving all the table headings Retrieving headings in first row of the table
getText() method of Alert interface Retrieving table data without table headings Retrieving data in second row of the table
accept() method of Alert interface Retrieving rows in a table Retrieving data in fourth row of the table
Switching back to main window Retrieving the data in first column of the table Retrieving data in a cell based on the value of another cell in the same row
Handling Web Tables Retrieving the data in second column of the table

Session 40: Selenium WebDriver – Part 12 (2 hours 19 minutes)

Waiting Mechanism WebDriverWait Class invisibilityOfElementLocated (locator) method
NoSuchElementException FluentWait Class Selenium WebDriver timeout
Thread.sleep() ExpectedConditions Default Timeout of Selenium WebDriver
Implicit Wait until() method of Wait interface pageLoadTimeOut() method
Explicit Wait visibilityOfElementLocated (locator) method TimeOutException
Wait interface elementToBeClickable(locator) method

Session 41: Selenium WebDriver – Part 13 (1 hours 13 minutes)

Select Class deselectByVisibleText() method getAllSelectedOptions() method
Predefined methods of Select Class deselectByIndex() method getFirstSelectedOption() method
selectByVisibleText() method deselectByValue() method isMultiple() method
selectByIndex() method deselectAll() method
selectByValue() method getOptions() method

Session 42: Selenium WebDriver – Part 14 (1 hours 44 minutes)

Handling Mouse Actions dragAncDropBy() dragAndDrop()
Actions Class clickAndHold() Handling Keyboard Actions
Predefined methods of Actions Class release() sendKeys()
moveToElement() contextClick() chord()
click() doubleClick()

Session 43: Selenium WebDriver – Part 15 and AutoIt (2 hours 3 minutes)

Uploading a file Downloading AutoIt tool Variables in AutoIt tool
Using sendKeys() for uploading a file Installing AutoIt tool Invoking AutoIt code from Java program
AutoIt tool Pre-defined methods in AutoIt tool Using AutoIt for uploading a file

Session 44: Selenium WebDriver – Part 16 (1 hours 31 minutes)

Handling Frames Parent Frames and Child frames Possibilities where switching between frames in not allowed
Frames Switching between Parent and Child frames
Using switchTo() for handling frames Possibilities where switching between frames is allowed

Session 45: Selenium WebDriver – Part 17 (49 minutes)

Handling Cookies Cookie class in Selenium Using predefined methods of Cookie class
What are Cookies Retrieving Cookies
Purpose of Cookies Performing operations on Cookies

Session 46: Selenium WebDriver – Part 18 and few Java concepts (2 hours 2 minutes)

Handling Random Activities Calendar Class Parse() method
Random Class getInstance() method Handling Calendar table in Selenium
nextInt() method get() method Handling ‘Submit’ button in forms
Using Random Class and nextInt() in Selenium setTime() method submit() method
Handling Calendar SimpleDateFormat Class

Session 47: Selenium WebDriver – Part 19 (1 hour 17 minutes)

Handling Firefox Profiles ProfilesIni Class setPreference() method
Multiple Profiling getProfile() method Modifying Firefox preferences
Browsers and Multiple Profiling Downloading Files using Selenium
Opening a specific Profile FirefoxProfile Class

Session 48: Selenium WebDriver – Part 20 (1 hour 37 minutes)

Enabling Native Events FirefoxProfile Class setAcceptUntrustedCertificates() method
Native Events setEnableNativeEvents() method Handling Untrusted Certificate Errors using Desired Capabilities
Synthetic Events Handling Untrusted Certificate Errors setCapability() method
Enabling Native Events in Firefox SSL Certificate

Session 49: Selenium WebDriver – Part 21 (1 hour 28 minutes)

Executing JavaScript using Selenium JavaScriptExecutor interface Using varargs in executeScript() method
Why JavaScript is the final solution executeScript() method
Using JavaScript and DOM together varargs in Java

Session 50: Selenium WebDriver – Part 22 (1 hour 25 minutes)

Event Listener in Selenium afterNavigateForward() method afterChangeValueOf() method
EventFiringWebDriver Class beforeNavigateRefresh() method beforeScript() method
WebDriverEventLIstener interface afterNavigateRefresh() method afterScript() method
beforeNavigateTo() method beforeFindBy() method onException() method
afterNavigateTo() method afterFindBy() method Implementing EventFiringWebDriver interface
beforeNavigateBack() method beforeClickOn() method register() method
afterNavigateBack() method afterClickOn() method unregister() method
beforeNavigateForward() method beforeChangeValueOf() method

Session 51: Selenium WebDriver – Part 23 (1 hour 15 minutes)

Handling Lightbox getScreenshotAs() method Base64 Class
Taking Screenshots Password Encryption encodeBase64() method
TakeScreenshot interface Password Decryption decodeBased64() method

Session 52: Framework Concepts – Properties Files (1 hour 8 minutes)

Properties Files Implementing Properties files in Java Base64 Class
Taking Screenshots Purpose of Properties Files in Selenium Automation Frameworks Retrieving the Project data from the Properties Files

Session 53: Framework Concepts – POI API (5 hours 4 minutes)

POI API XSSF implementation Implementing POI API in Automation Framework
Official Website Purpose of POI API Creating user defined methods using POI API
Downloading POI API Reading data from Excel Files
HSSF implementation Writing data into Excel Files

Session 54: Framework Concepts – Log4j API (1 hour 43 minutes)

Log4j API Debugging using SOP statements Downloading Log4j
Purpose of Log4j API Disadvantages of SOP statements in logging Implementing Log4j in Selenium Automation Frameworks
Debugging Advantages of Log4j API in logging

Session 55: Framework Concepts – TestNG (7 hours 43 minutes)

TestNG Skipping the tests Hard Assertions
TestNG installation Failing the tests Soft Assertions
TestNG annotations Parameterizing the tests Executing Multiple Test Suites from a Single Master testng xml file
Executing Java files in batch using TestNG TestNG Assertions

Session 56: Framework Concepts – ANT (1 hour 38 minutes)

ANT Configuring ANT Executing tests using batch file
Downloading ANT build.xml file XSLT Reports

Session 57: Framework Concepts – Maven (1 hour 42 minutes)

Maven Creating Maven Project Maven Life Cycle Phases
Maven versus ANT Running the tests using pom.xml
Installing Maven Eclipse IDE Plug-in Combination of testng and pom.xml

Session 58: Data Driven Framework and Selenium Grid (2 hour 42 minutes)

Data Driven Framework Execute tests in a serial way Grid Console
Demo Project Execute tests in a parallel way Configuring ANT
Creating Maven Project Selenium Grid Generating XSLT Reports
Source Folders Configuring Hub and Node Machines Execute the tests using Bat file

Session 59: Keyword Driven Framework and Hybrid Framework (2 hour 42 minutes)

Hybrid Framework Source Folders Configuring ANT
Combination of Keyword Driven Framework and Data Driven Framework Generic Keywords Executing tests using BAT file
Demo Project App Keywords
Creating Maven Project Extent Reports

Session 60: Jenkins, Git and GitHub (2 hours 17 minutes)

Working on a project in group Downloading AutoIt tool Configuring GitHub to work with Jenkins
GitHub Installing Git Creating Jenkins Project
Creating a GitHub account Jenkins Invoking ANT from Jenkins
Creating a GitHub Repository Downloading Jenkins Install TestNG results Plugin in Jenkins
Git Installing Jenkins View TestNG results in Jenkins

Session 61: Page Object Model, Page Factory and Selenium 3 (1 hour 47 minutes)

Page Object Model Design pattern Page Factory initElements()
Design Patterns Advantages of Page Factory Selenium 3
Advantages of Page Object Model @FindBy Geckodriver

Session 62: Extent Reports (58 minutes)

ExtentReports Class Reports folder Adding System Info
ExtentTest Class ReportsConfig.xml Displaying logs and screenshots in the reports
Configuring required Jars Naming reports with current time stamp

Session 63: Build Data Driven Frameworks from scratch (4 hours 46 minutes)

Data Driven Testing Providing required dependencies Properties files
Data Driven Framework Creating sub packages Creating Test Classes
Demo Application Configuring POI API Developing Framework from scratch
Creating Maven Project Configuring Extent Reports Download Developed Framework
Creating Source folders Utility and reusable methods

Session 64: Build Page Object Model and Page Factory implemented Framework from scratch (3 hours 14 minutes)

Page Object Model Design pattern Configuring POI API Page Factory
Advantages of Page Object Model Configuring Extent Reports Advantages of Page Factory
Creating Maven Project Utility and reusable methods @FindBy
Creating source folders Constants initElements()
Providing required dependencies Creating Pages Classes Developing Framework from scratch
Creating sub packages Creating Test Classes Download Developed Framework

Session 65: Cucumber and BDD (1 hour 54 minutes)

Cucumber Create Maven Project Creating Step Definitions
Behavior Driven Development Configure dependencies Creating Test Runner Class
Advantages of BDD Install Eclipse IDE Plugins Download Cucumber & BDD Project
Feature Files and Gherkin Creating Feature Files

Session 66: Fluent Wait (55 minutes)

Different waiting mechanisms in Java and Selenium pollingEvery( ) Demonstrating pollingEvery( ) with a practical example
Working of Fluent Wait ignoring( )
withTimeout( ) Demonstrate ignoring() with a practical example

Happy Learning  🙂

Arun Motoori (