| 1 |
Introduction |
What is Selenium |
|
| |
|
Selenium History |
|
| |
|
Role of Automation Engineer in Industry |
|
| |
|
Why Automation Testing? |
|
| |
|
What is not Automation Testing? |
|
| |
|
What should be tested |
|
| |
|
What shouldn’t be tested |
|
| |
|
Career path as Automation Engineer |
|
| |
|
Why Choose Selenium |
|
| 2 |
Installation |
Installing Java |
|
| |
|
Integrated Development Environment (IDE)- Eclipse/IntelliJ IDEA |
|
| |
|
Install Maven/Gradle |
|
| |
|
Lifecycle Maven |
|
| |
|
Create maven POM & basic understanding |
|
| |
|
Java Source file structure |
|
| |
|
Compilation & Execution |
|
| |
|
Create a Calculator |
|
| |
|
Create Tests for that Calculator with Junit |
|
| |
|
Run Test in IDE |
|
| |
|
Run Test in CLI |
|
| 3 |
Basic Java |
Keywords, Literals, Comments |
|
| |
|
Data Types |
|
| |
|
Operators & Assignments |
|
| |
|
Class/Object |
|
| |
|
Methods |
|
| |
|
Package |
|
| |
|
Constructors |
|
| |
|
Package and importing Package |
|
| |
|
Variables |
|
| |
|
Printing Variables |
|
| |
|
Control Flow , looping and branching |
|
| |
|
Java Arrays |
|
| 4 |
OOP |
Class fundamentals |
|
| |
|
Object & Object Reference |
|
| |
|
Creating objects |
|
| |
|
Constructor and initializing code blocks |
|
| |
|
Method overloading |
|
| |
|
Inheritance -is A , has A relation |
|
| |
|
Method overriding |
|
| |
|
Abstract class |
|
| |
|
Final class |
|
| |
|
Object composition |
|
| |
|
Polymorphism |
|
| |
|
Variable type & object Type |
|
| |
|
Upcasting & downcasting |
|
| |
|
Interface |
|
| |
|
Abstract class vs. interface |
|
| |
|
Encapsulation |
|
| |
|
Access Control, Modifiers, methods |
|
| |
|
Design of accessors and mutators |
|
| 5 |
Selenium |
Selenium Dependencies in POM |
|
| |
|
Create your first webdriver test |
|
| |
|
run the test & see it pass |
|
| |
|
Run test in CLI |
|
| |
|
Element Locators |
|
| |
|
Actions |
|
| |
|
Custom Click & Type |
|
| |
|
Select |
|
| |
|
Quotes |
|
| |
|
SlowLoadableComponent |
|
| |
|
Quotes |
|
| |
|
Right button Click |
|
| |
|
Keyboard Key Press (single, multiple) |
|
| |
|
Execute Java Scripts |
|
| |
|
Handling Ajax |
|
| |
|
AjaxElementLocator |
|
| |
|
Custom ElementLocator based on your UI |
|
| |
|
Handling Dynamice Elements |
|
| |
|
What are xPath or CSS selector |
|
| |
|
Dynamic xPath |
|
| |
|
windows & frames |
|
| |
|
Alert & Popup |
|
| |
|
Date time pickers |
|
| |
|
Selections Popoups |
|
| |
|
Selections Combomox |
|
| |
|
different type of waits |
|
| |
|
fluent wait |
|
| |
|
webdriver wait |
|
| |
|
why to use and not to use thread.sleep |
|
| |
|
Expected Conditions |
|
| |
|
Managing Local Browser:Chrome |
|
| |
|
Managing Local Browser:Firefox |
|
| |
|
Managing Local Browser:Opera |
|
| |
|
Managing Local Browser:Safari |
|
| |
|
Managing Remote Browsers |
|
| |
|
Managing Headless Browsers |
|
| |
|
Managing Desired Capabilities |
|
| |
|
Managing Sessions & Cookies |
|
| |
|
|
|
| |
|
|
|
| 6 |
Basic Concepts |
SOLID Principle |
|
| |
|
Page Object Model |
|
| |
|
Page Factory |
|
| |
|
Page Factory : Findby |
|
| |
|
Page Factory : Caching |
|
| |
|
Page Factory : ByAll |
|
| |
|
Page Factory : ByChained |
|
| |
|
Screen Play |
|
| |
|
Property Based Page Object |
|
| |
|
Selenium Data Driven Testing |
|
| |
|
Designing your project based on your UI elements |
|
| 7 |
Architecture |
How selenium works |
|
| |
|
what is selenium & what is not |
|
| |
|
JSON wire protocol (OBSOLETE now) |
|
| |
|
Selenium Standalone |
|
| |
|
Selenium Master |
|
| |
|
Selenium Slave |
|
| |
|
Selenium Remote Control |
|
| |
|
Setting up a Selenium Remote Control with VMs |
|
| |
Test Design |
How to design a Automation Tests |
|
| |
|
V-Diagram of testing |
|
| |
|
Test Hierarchy |
|
| |
|
How to design your tests based on requirements |
|
| |
|
Prioritize your tests |
|
| |
|
Test Order |
|
| |
|
Test Design |
|
| |
|
Test Reporting |
|
| |
|
Test Plan & Execution |
|
| |
Test Framework : TestNG7 |
What is TestNG & Why we need to use |
|
| |
|
How TestNG runs the test |
|
| |
|
Annotations |
|
| |
|
Annotations Execution Hierarchy |
|
| |
|
Test Execution Hierarchy |
|
| |
|
How you know which annotaion to use where |
|
| |
Test Framework : Junit5 |
|
|
| 8 |
Running Tests |
Running test locally |
|
| |
|
Running Test Remotely |
|
| |
|
Running Test by remote-control |
|
| |
|
Running test locally Parallel |
|
| |
|
Running test RC Parallel |
|
| |
|
Running test in Docker
|
|
| 9 |
Log & Reporting |
What are different type of reports |
|
| |
|
Executive Summary Dashboard |
|
| |
|
For Development Team |
|
| |
|
For Business Analyst or Stakeholders |
|
| |
|
Java Logging |
|
| |
|
Allure Reporting |
|
| |
|
Allure Annotations |
|
| |
|
Custom Allure @Step Logging |
|
| |
|
Simple HTML Reporting from log4j |
|
| |
|
Extend Reports(open sourced) |
|
| |
|
Taking & Logging failed step Screenshots |
|
| |
|
Recording Video during tests |
|
| 10 |
Parameters |
Managing Environments |
|
| |
|
Managing Using Properties |
|
| |
|
Custom Property Loades |
|
| |
|
Load Property from maven commands |
|
| 11 |
Advance Testing |
Performance , Security & more |
|
| |
|
Navigation Timing JS |
|
| |
|
Browser MobProxy integration |
|
| |
|
Proxy Configuration |
|
| |
|
Regular Expression |
|
| |
|
Hacking UI elements |
|
| |
|
Smarter JS waits |
|
| |
|
Supporting modern JS frameworks |
|
| |
|
WebdriverJS |
|
| |
|
Building framework with serenity |
|
| |
|
Building framework with Yandex http element |
|
| |
|
Building framework with elementalselenium |
|
| |
|
Building framework with UI Property |
|
| |
|
Building RC environment with zalenium |
|
| |
Troubleshooting |
How to retry failed tests |
|
| |
|
How to retry failed element locators |
|
| |
|
How to fail on timeouts |
|
| |
|
How to handle failed Exceptions & retry |
|
| |
|
How to handle problemetic webelement |
|
| |
|
How to handle big size & long running Ajax responses |
|
| |
|
How to handle UI crashes |
|
| |
|
How to handle big size Ajax responses |
|