Selenium with Java: Full-Stack Automation Testing Course
- What is Selenium and its components (WebDriver, Grid, IDE, etc.)
- Selenium WebDriver Overview
- WebDriver Architecture
- Setting up Selenium with Java
- Installing Java, Eclipse/IntelliJ, and Selenium WebDriver
- Browser Drivers (Chrome, Firefox, Edge)
- Introduction to Java for Automation
- Variables, Data Types, Operators
- Classes, Objects, Methods, Constructors
- Control Statements: If, Switch, For, While
- Exception Handling: Try-Catch, Throws
- Arrays, Collections (List, Set, Map)
- Object-Oriented Programming (OOP) in Java
- Classes, Objects, Inheritance
- Polymorphism, Abstraction, Encapsulation
- Interfaces and Abstract Classes
- Access Modifiers
- Java Libraries for Selenium
- Java Collections (List, Map, Set)
- Input/Output Streams
- Working with Files (FileReader, BufferedReader, FileWriter)
- Introduction to WebDriver
- Locating Elements:
- By ID, Name, Class Name, Tag Name, XPath, CSS Selector
- WebDriver Commands:
- get(), navigate(), click(), sendKeys(), getText(), getTitle(), getPageSource()
- WebDriver Waits:
- Implicit Wait, Explicit Wait, Fluent Wait
- Browser Navigation and Window Handling
- Handling Alerts, Pop-ups, and Frames
- Handling Multiple Windows/Tabs
- Actions Class (Mouse Hover, Keyboard Actions)
- Taking Screenshots in Selenium
- Introduction to TestNG
- TestNG Annotations:
- @BeforeClass, @BeforeMethod, @Test, @AfterMethod, @AfterClass
- Grouping, Prioritizing, and Skipping Tests
- Assertions and Verification
- Data-Driven Testing with TestNG:
- @DataProvider, @Parameters
- Running Tests in Parallel
- TestNG Reports and Logs
- TestNG XML Configuration
- Integrating Selenium with TestNG
- Introduction to Cucumber
- Cucumber Architecture and Components
- Writing Feature Files:
- Gherkin Syntax (Given, When, Then, And, But)
- Cucumber Step Definitions
- Integrating Selenium WebDriver with Cucumber
- Running Cucumber Tests with TestNG
- Cucumber Reporting and Logs
- Data-Driven Testing in Cucumber
- Parameterization in Cucumber
- Tags in Cucumber
- Cucumber Best Practices
- Introduction to Jenkins
- Setting up Jenkins Server
- Creating Jenkins Jobs for Automation Testing
- Integrating Jenkins with GitHub for Version Control
- Configuring Maven Builds in Jenkins
- Running Selenium Tests through Jenkins
- Configuring Jenkins for Parallel Test Execution
- Jenkins Reporting and Logs
- Post-Build Actions in Jenkins
- Scheduling Jenkins Jobs
- Setting up Jenkins Pipelines (Declarative and Scripted Pipelines)
- Introduction to Maven
- Setting up Maven in Java Project
- Maven Lifecycle Phases
- Clean, Validate, Compile, Test, Package, Install, Deploy
- Dependencies Management in Maven (pom.xml)
- Maven Plugins for Selenium
- Integrating Maven with Jenkins
- Running Tests with Maven Commands (mvn clean test)
- Introduction to Git and GitHub
- Git Basics: Clone, Commit, Push, Pull
- Creating Branches and Merging
- GitHub Workflow for Automation Projects
- Resolving Merge Conflicts
- Integrating Git with Jenkins
- Using Git in CI/CD Pipeline
- Git Best Practices for Automation Projects
- Data-Driven Framework
- Using Excel, CSV, and Databases for Data-Driven Testing
- Test Data Management
- Keyword-Driven Framework
- Hybrid Framework
- Modular Framework
- Framework Design Patterns in Selenium
- Handling Dynamic Web Elements
- Working with AJAX and Asynchronous Content
- Custom WebDriver Methods
- Custom Wait Implementations
- Handling Multiple Windows and Frames
- Cross-Browser Testing and Compatibility Testing
- Integration with Cloud Testing Services (Sauce Labs, BrowserStack)
- Performance Testing with Selenium
- Mobile Testing with Appium
- Advanced Debugging and Logging Techniques in Selenium
- Building an Automation Test Suite from Scratch
- Working on Real-World Case Studies
- Collaboration with Team Members on Projects
- Implementing Best Practices and Design Patterns
- Test Reporting and Documentation