Selenium novice to advance course outline

Module Title Breakdown Time
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  

Selenium Helpers