Introduction:
- Overview of Selenium
- Advantages of Selenium
- The Selenium Suite
- Introduction to Selenium IDE
- Selenium Remote Control
- Selenium Grid
- The architecture of Selenium Grid
- The Hub & The Nodes
- Basics of Web Driver
- Setting up the environment
- Configure FireBug & FirePath
- Advanced Selenium WebDriver
- TestNG
- Automation Framework
- Advanced Automation Framework
Core Java Overview:
- Why Java for Selenium
- First Java program
- Datatypes in Java
- Variables & Constants
- Control-flow statements
- Operators
- Arrays
- Loops
- Classes and Objects
- Class Constructors
- Class program in Java
- Inheritance & Polymorphism
- Introduction to Interface
- Collection hierarchy
Selenium IDE:
- Introduction to Selenium IDE
- Features of Selenium IDE
- Installing Selenium IDE
- IDE Options
- Building test cases
- Running Test Cases
- IDE Script Debugging
- Writing a Test Suite
- Using Locators in Selenium
- Verification points in IDE
- Working with regular expressions
- User extensions
- Execute scripts across browsers
Selenium WebDriver:
- Introduction
- How Selenium WebDriver Works
- Configuring Selenium WebDriver With Eclipse
- Selenium RC vs WebDriver
- Set Up WebDriver Client
- Programming your tests in WebDriver
- Debugging WebDriver test cases
- Troubleshooting
- Testing HTTPS and Security Pop-ups
- Running Test on GeckoDriver
- Executing and Debugging tests in browsers
- IE
- Chrome
- Firefox
- Desired Capabilities in Selenium WebDriver
- Session Handling
- Handle Alerts and Multiple Windows using WebDriver
- Uploading & Downloading using WebDriver
Accessing Forms & GUI Objects:
- Text box interaction
- Radio button interaction
- Handling Checkboxes with WebDriver API
- Handling static dropdowns
- Handling dynamic dropdowns
- Drag & Drop
- Keyboard Interaction
- Mouse Interaction
- Multi select
Selenese Commands:
- Actions
- Accessors
- Assertions
- Using Locators in Selenium
- Locating by ID
- Locating by Name & using filters
- Locating by Link Text
- Locating by CSS Selector
- Locating by DOM
Synchronization in WebDriver:
- What is an implicit wait?
- What is an explicit wait?
- AJAX Calls in Selenium
- What is AJAX
- Handling AJAX Calls
- Challenges
Accessing Web Tables:
- What is a Web Table?
- Static Tables
- Dynamic Tables
- Locating Web Table elements
- Fetching number of rows and columns
- Fetching cell value
TestNG Framework:
- Introduction
- TestNG Features
- Install and set up the TestNG environment
- First Test Case with TestNG
- TestNG annotations
- Junit vs TestNG
- TestNG Test Suite
- Annotations, Groups & DependOn
- TestNG - Ignore Test
- Group Test in TestNG
- Metagroups
- Exclusion Groups
- Exception Test
- Dependency Test
- TestNG Parameters & Data Provider
- TestNG Reporters & Asserts
- Test Cases Prioritizing & Sequencing
- TestNG DataProvider with Excel
- Multi-Browser & Parallel Testing
Test Design Techniques:
- Page Object Model
- Why POM?
- What is POM?
- POM Benefits
- Parameterizing using Excel
- Log4j Logging
- Exception Handling
- Capture Screenshots
Cookie Handling in Selenium:
- Why handle cookies
- Retrieving, adding and deleting cookies
- Storing a cookie
- Using stored cookie
Debugging:
- What are Breakpoints
- Implementation of Breakpoints
- What is a Startpoint
- Implementation of Startpoints
Xpath Functions:
- Contains
- Sibling
- Ancestor
Selenium Frameworks:
- Data Driven Test Framework
- Keyword Driven Test Framework
- Hybrid Test Framework
Cucumber (Behaviour-Driven Testing):
- Introduction to Cucumber
- What is BDD?
- BDD v/s TDD
- What is Cucumber
- Introduction to Gherkin
- Selenium Integration with Cucumber BDD
- Maven project setup for Cucumber with Selenium
- Writing Feature Files with Gherkin syntax
- Running Scenarios from Feature File
- Cucumber Annotations
- Working with Step Definitions
- Data Driven Testing in Cucumber
- Parameterization of Test Cases
- Passing Data Tables to Steps
- Integrating cucumber scenarios with Junit tests
- Adding Scenario tags
- Scenario Hooks in Cucumber
- Generating Reports