SELENIUM
Testing Fundamentals
- What is testing?
- Different approaches of testing?
- Disadvantages of manual testing
- What is Automation testing?
- Benefits of Automation testing?
- What type of Test cases can automate?
- What type of test cases not to automate?
- Automation life cycle
- Different types of Automation tools
- Difference between QTP & Selenium
Introduction to Selenium
- History of selenium
- What is selenium?
- Components of selenium
Selenium IDE
- Selenium IDE Introduction
- Download & configure Selenium IDE
- Selenium IDE Features
- Record and Run Tests
- Generate Tests Manually
- Debug Selenium IDE Tests
- Enhancing Selenium IDE Tests
- What is Verification and Assertion?
Element identification
- What is element property?
- Different ways to recognize element properties
- What is firebug and firepath?
- How to recognize element in chrome & I.E Browsers?
Selenium WebDriver
WebDriver – Part 1
- First selenium code in webdriver
- Working with chrome and I.E
- Working with basic browser commands
- Get()
- getTitle()
- getCurrentUrl()
- getPageSource()
- close()
- Quit()
- Concept of Firefox profile
- What is Firefox Profile?
- Why we need Firefox profile
- Importing web Driver documentation in Eclipse
- WebDriver Desired capabilities class
- Html unit driver and desired capabilities
WebDriver -- Part 2
- HTML language tags and attributes
- Various locator strategies
- WebDriver Interface
- WebElement Interface
- Identifying WebElements using id, name, class
- Finding Xpaths to identify
- Absolute and complete Xpaths
- Creating customized Xpaths without firebug
- Css Selectors
- Generating own CssSelectors
- Performance of CssSelectors as compared to Xpaths
- Finding xpaths/cssselectors in different browsers - Mozilla, Chrome and IE
- Objects with same id/xpath/cssSelector
- What is class attribute?
- Handling Dynamic objects/ids on the page
- Working with different browsers without changing code
WebDriver -- Part 3
- Managing Input fields, Buttons and creating custom xpaths
- Managing/Identifying Links with xpaths/css selectors
- Extracting More than one object from a page
- Extracting all links of a page/Bulk extraction of objects
- Extracting Objects from a specific area of a web page
- Various strategies to test Links on a page by clicking on them one by one
- Finding response Headers/ response code
- Finding whether object is present on page or not
- Handling drop down list
- Select Class in Selenium API
- Managing radio buttons and Checkboxes
- Hidden components
- isDisplayed function
- Taking Screenshots of the web pages
WebDriver -- Part 4
- Implicit and Explicit waits
- PageLoadTimeout Property
- WebDriverWait Class
- Timeout Interface
- ExpectedCondition interface and ExpectedConditions class
- WaitUntil Condition
- Fluent Wait
- Managing Ajax based components
- Concepts of Set Interface in Java
- Window Handles
- Managing tabbed windows in IE, Chrome and Mozilla
- Managing popups in IE, Chrome and Mozilla
- Closing windows
- Default Popups
- Testing https websites / Managing certificate errors in https websites in IE, Chrome and Mozilla
WebDriver -- Part 5
- Mouse movement with Selenium - Actions class
- Randomly clicking/selecting Objects - Randomizing
- Extracting Data From WebTable
- Dynamic WebTable Handling
- Handling Ajax Auto suggests
- Handling Frames in Web Page
- Webtables and css Selectors
- Managing Javascript alerts
WebDriver -- Part 6
- Simulaing front and back buton click on Browser using selenium
- Assigning Firefox profile parameters
- Downloading files using selenium
- Selenium Javadocs
- Listeners- Using WebDriverEventListener
- Practical usage of Listeners in Selenium
- Moving a mouse on a Object and right clicking on it
- Finding Coordinates of a Web Object
- Actions class in Webdriver
- Handling CSS menu with Action class
- Handling CSS menu with JavaScriptExecutor
- JavaScriptExecutor example
- Drag, drop, native events
Selenium Grid
- What is selenium Grid?
- Use of selenium Grid
- How to configure selenium grid?
TestNG Framework
- what is TestNg
- Installing TestNg in Eclipse
- TestNg annotations
- Understanding usage of annotations
- Running a Test in TestNg
- Batch Running of tests in TestNg
- Skipping Tests
- parameterizing Tests - DataProvider
- Assertions/Reporting Errors
- TestNg Reports
- Advantages over Junit
- Using TestNg in Selenium
Java Concepts
Java Introduction
- Installing Java
- Installing Eclipse
- Features of Java
- Why Java for Selenium
- First Eclipse Project
- First Java program
- Concept of class file
- Platform independence
- Datatypes in Java
- String class
- If statements
Loops, Arrays and Functions Conditional and concatenation operators
- While Loop
- For Loops
- Practical Examples with loops
- Usage of loops in Selenium
- Single Dimensional Arrays
- Two Dimensional arrays
- Practical usage of arrays in Selenium
- Drawbacks of arrays
- What are Functions?
- Function Input Parameters
- Function Return Types
Object Oriented Programming- 1
- Local Variables
- Global Variables
- Static and Non-Static Variables
- Static and Non-Static Functions
- Creating Objects in Java
- Meaning of static
- Why is main method static?
- Object and Object References
- Call by reference and ValueC
- Constructors
- Usage of Objects in Selenium
Object Oriented Programming -2
- Concept of Inheritance
- Interface
- Overloadings and Overriding Funtions
- Example on inheritance
- Object Class
- Usage of Inheritance in Selenium
Packages,Access Modifiers/ Exception Handling
- Relevance of Packages
- Creating Packages
- Accessing Classes Across Packages
- Good Features of eclipse
- Accessing modifiers - Public, Private, Default, Protected
- Exception handling with try catch block
- Importance of exception handling
- Exception and Error
- Throwable Class
- Final and Finally
- Throw and Throws
- Different Types of Exceptions
- Need of exception handling in Selenium framework
Automating Window Components
- AutoIt
- Robot Class
Maven
- What is maven & why Maven?
- Installing/configuring Maven
- Archetypes in Maven
- Creating Maven project through command line
- xml
- Importing Archetypes
- Maven Repositories
DataBase Testing Using Selenium
- Supporting Database application
- How to connect Database interface with JAVA?
- Showing Examples with
Jenkins
- What is Jenkin
- What is continuous integration?
- How to configure Jenkins
- How to send emails
- Sceduling Build.
POM (Page object Model)
- What is POM
- Why POM
- Advantages of POM
- Creating POM Test
- What is Page Factory
- Creating Test With Page Factory