When you enroll through our links, we may earn a small commission—at no extra cost to you. This helps keep our platform free and inspires us to add more value.

Udemy logo

Learn Selenium with Java, Cucumber & Frameworks

Core Java, Selenium WebDriver, TestNG , Cucumber, Maven, Jenkins, GIT, GitHub, Docker & Frameworks

     
  • 4.5
  •  |
  • Reviews ( 13K )
₹659

This Course Includes

  • iconudemy
  • icon4.5 (13K reviews )
  • icon102h 29m
  • iconenglish
  • iconOnline - Self Paced
  • iconprofessional certificate
  • iconUdemy

About Learn Selenium with Java, Cucumber & Frameworks

Master Selenium Automation Testing with Java from scratch! This comprehensive course covers Java programming, Selenium WebDriver, TestNG, Cucumber BDD, Selenium Grid, Docker, and automation framework development. Learn industry best practices and real-world test automation techniques. The course is structured around several modules, covering essential topics such as:

Module-1: Overview on Automation & Selenium

Introduction to Automation

Challenges in Manual Testing

Overcoming Challenges with Automation

Importance of Programming in Automation

Introduction to Selenium

Selenium Components

Advantages and Disadvantages of Selenium WebDriver

Module-2: Java Programming for Selenium

Java and Eclipse Environment Setup

Setting up Java Development Kit (JDK)

Installing Eclipse IDE

Configuring Java and Eclipse Environment

How to Write Basic Java Program?

Creating a Java Class

Main Method in Java

Writing the First Java Program

Compiling and Running Java Programs

Understanding Console Output

Using System.out.println() for Output

Printing Variables and Text to Console

Java Variables and Data Types

Declaring Variables in Java

Primitive Data Types (int, float, double, char, boolean)

Variable Naming Conventions

Java Operators

Arithmetic Operators

Relational Operators

Logical Operators

Assignment Operators

Increment and Decrement Operators

Ternary Operators

Conditional Statements

If Statement

If-Else Statement

Switch-Case Statement

Loops

While Loop

Do-While Loop

For Loop

Jumping Statements

Using break Statement

Using continue Statement

Arrays - Single & Two Dimensional

Declaring and Initializing Arrays

Accessing Array Elements

Single-Dimensional Arrays

Two-Dimensional Arrays

Object Type Array

Coding Exercises on Arrays

String Class

Introduction to the String Class

String Methods

Common String Methods

Coding Exercises on Strings

Wrapper Classes

Primitive Data Types vs Wrapper Classes

Autoboxing and Unboxing

Module 3: Java OOPS Concepts

Classes and Objects

Introduction to Classes and Objects

Creating Classes

Declaring Object Instances

Class Members: Fields and Methods

Java Methods & Constructors

Defining Methods

Method Signatures

Return Types

Passing Parameters to Methods

Passing Parameters

Call by Value

Call by Reference (Reference Passing)

Java Constructor

Constructor Basics

Parameterized Constructors

Default Constructors

Polymorphism

Introduction to Polymorphism

Overloading Methods

Method Overloading

Overloading with Different Parameter Types

Overloading with Different Number of Parameters

Overloading Constructors

Constructor Overloading

Creating Constructors with Different Parameters

Encapsulation

Encapsulation Overview

Setters and Getters

Purpose of Setters and Getters

Encapsulation with Setters and Getters

this Keyword

Understanding the this Keyword

Using this to Differentiate Instance and Local Variables

Static Variables and Methods

Static Variables

Static Methods

Accessing Static Members

Inheritance

Basics of Inheritance

Extending Classes

Superclass and Subclass

Types of Inheritance

Single Inheritance

Multiple Inheritance

Multilevel Inheritance

Hierarchical Inheritance

Method Overriding

Overriding Methods in Subclasses

Use of @Override Annotation

super Keyword

Using super to Access Superclass Members

Invoking Superclass Methods

final Keyword

Final Variables

Final Methods

Final Classes

Abstract Class

Abstract Class Overview

Abstract Methods

Creating Abstract Classes

Java Interface

Introduction to Interfaces

Implementing Interfaces

Multiple Interface Implementation

Java Packages

Organizing Code with Packages

Creating and Using Packages

Access Modifiers

Public, Private, Protected, Default Access Modifiers

Access Modifier Scope

Data Conversion Functions

Converting Data Types

Casting - Up Casting and Down casting

Reading Input from Keyboard

Using Scanner Class for Input

Exception Handling

Introduction to Exception Handling

Try, Catch, Finally Blocks

Types of Exceptions

Java Collections

Overview of Java Collections Framework

Lists, Sets, Maps

Iterators

Collections Methods

File Handling

Handle text files

Handle properties files

Module-4: Selenium WebDriver (Latest Version)

Introduction to WebDriver and Architecture

Overview of Selenium WebDriver

Architecture of Selenium WebDriver

Environment Setup & WebDriver Configuration

Setting up WebDriver in Eclipse

Configuring WebDriver for Different Browsers

How to Create Automated Test Case in WebDriver?

Setting Up a Basic Test Case Structure

Writing and Running Simple WebDriver Test Cases

Execute Test Case on Multiple Browsers

Cross-Browser Testing

Running Tests on Different Browsers

Understanding HTML Tags and Attributes

HTML Basics for Selenium Testers

Locating Elements Using HTML Tags and Attributes

Basic Locators

Name Locator

ID Locator

LinkText Locator

PartialLinkText Locator

Advanced Locators

CSS Locators

XPath Locators

XPath Axes

Relative Locators

.above, .below, .toLeftOf, .toRightOf, .near

How to Use SelectorsHub & Features of Selectors Hub

Overview of SelectorsHub

Features and Benefits

WebDriver Methods

Opening Page URL

Verifying Page Title

Getting Page Source

Getting Page URL

Conditional Methods

Visibility of WebElements

Enable/Disable Status of Web Elements

Waits

Implicit Waits

Explicit Waits

Fluent Waits

Page Load Time

Navigation Methods

Navigating Back & Forward

Refreshing Page

Browser Commands

close() and quit()

getWindowHandle() and getWindowHandles()

Working with Web Elements

Handling Input Boxes

Handling Checkboxes & Radio Buttons

Handling Links

Handling Alerts/Popups

Handling Alert Boxes

Handling Confirmation Boxes

Handling Prompt Boxes

Working with Browser Windows

Switching Between Browser Windows

Handling Tabs and Windows

Handling Iframes & Inner Iframes

Switching to Iframes

Working with Nested Iframes

Handling Drop Downs

Select type Drop down

Bootstrap Drop Downs

Multi Select Drop Down

Auto Suggest Drop Down

Handling Static & Dynamic Web Tables

Strategies for Handling Tables

Handling Static Tables

Handling Dynamic Tables

Pagination Tables

Handling Date Pickers

Strategies for Handling Date Pickers

Handle SVG & ShadowDOM Elements

Handle Cookies

Handle Broken Links

Handling Mouse Actions

Using Actions Class

Right Click, Double Click, Mouse Over

Drag and Drop Actions

Handling Keyboard Actions and Shortcuts

Using Actions Class for Keyboard Actions

Working with JavascriptExecutor

Executing JavaScript Code in Selenium

Scrolling Web Page

Scrolling Up and Down the Page

Zoom In & Zoom Out, Maximize, Minimize Web Page

Managing Browser Window Size

Opening Links in New Tab

Handling New Tabs

Working with Tabs and Windows

Switching Between Tabs and Windows

Capturing Screenshots

Taking Screenshots in Selenium

Headless Browser Testing

Overview of Headless Testing

Advantages and Disadvantages

SSL Certificate Handling

Handling SSL Certificates

Browser Settings with ChromeOptions

Customizing Chrome Browser Settings

Enable Extensions on Browser at Runtime

Managing Browser Extensions

Blocking Ads on WebPage at Runtime

Blocking Ads Using WebDriver

Run Tests in Incognito Mode

Running Tests in Incognito/Private Mode

How to Handle Upload Files (Single and Multiple)

Uploading Files in Selenium

Handling Broken Links

What is Broken link?

How to find Broken links in web page

Handling shadowDOM, SVG Elements

Strategies for Handling shadowDOM and SVG Elements

Selenium WebDriver Exceptions

Working with Excel Files Using Apache POI API

Reading and Writing Excel Files

Data-Driven Testing

Strategies for Data-Driven Testing

Implementing Data-Driven Tests in Selenium

Selenium WebDriver Exceptions

Module-5: TestNG

Introduction to TestNG and Advantages

Overview of TestNG

Advantages of TestNG over JUnit

TestNG Features

Configuring TestNG in Project

Setting up TestNG in Eclipse or IntelliJ

Configuring TestNG Dependencies in the Project

Writing TestNG Test Cases

Basics of Writing TestNG Test Cases

Annotations in TestNG

Prioritizing Tests

Setting Test Case Priority

Running Tests in Priority Order

Understanding Testng.xml

Structure of TestNG XML File

Configuring Test Suites and Test Cases

TestNG Report

TestNG HTML Reports

Viewing and Analyzing TestNG Reports

TestNG Annotations

@BeforeSuite, @AfterSuite

@BeforeTest, @AfterTest

@BeforeClass, @AfterClass

@BeforeMethod, @AfterMethod

@Test Annotation

Types of Assertions (Hard and Soft Assertions)

Using Hard Assertions in TestNG

Using Soft Assertions in TestNG

dependsOnMethods

Defining Dependencies Between Test Methods

Ensuring Test Methods Run in a Specific Order

Skipping and Ignoring Tests

Skipping Tests in TestNG

Ignoring Tests in TestNG

Grouping Tests

Grouping Tests in TestNG

Running Tests by Groups

Parameterizing Tests (XML File, DataProviders)

Parameterizing Tests Using TestNG XML File

Parameterizing Tests Using DataProviders

@DataProvider

Understanding @DataProvider Annotation

Providing Test Data to Test Methods

Invocation Count

Repeating Test Execution with Invocation Count

Parallel Testing

Running Tests in Parallel

Configuring Parallel Execution in TestNG

TestNG Listeners

Overview of TestNG Listeners

Implementing Listeners in TestNG

Types of TestNG Listeners (e.g., ITestListener, IAnnotationTransformer)

Generate Extent Reports using Listeners

Module-6: Page Object Model Pattern

Generating Extent Reports

Log4j2 for Logging

Page Object Model (POM) Pattern

Creating Page Object Classes without Page Factory

Creating Page Object Classes using Page Factory

@FindBy annotation

Module-7: Selenium Grid

Introduction to Selenium Grid

Setting Up Grid Environment (Stand Alone, Hub with Nodes)

Running Selenium Tests on Grid

Module-8: Docker

What is Docker

What is Docker Image

What is Docker Container

How to create account on Docker Hub

Download Images from Docker Hub

Docker UI Application

Selenium Grid Configuration on Docker Hub

Run your test cases on Dockerized Selenium Grid

Setup Infrastructure using Docker Compose yml

Scale up the browsers at the run time

Shut down the Docker Infrastructure

Module-9: Introduction to Automation Frameworks

Introduction to Automation Frameworks

Types of Frameworks

Phases in Designing Framework

Choosing Test Cases for Automation

Module-10: Hybrid Framework with POM (Page Object Model) – Project

Creating Maven Project and update pom.xml with dependencies

Creating Folder Structure

Creating Page Objects and Object Repository

Creating Utility files

Generating Extent Reports

Generating Allure Reports

Generating Logs using Log4j2

Setting Up Configuration Files

Creating Automation Test Cases

Creating Data-Driven Test Cases

Creating Database Test Cases

Executing Test Scripts using TestNG XML File

Emailing Test Reports

Executing Test Scripts through Command Line

Executing Test Scripts using Batch File

Executing Test Scripts on Selenium Grid

Executing Script on Docker Container

Module-11: Cucumber BDD Framework

Introduction to BDD and Cucumber

Gherkin Language Keywords

Feature Files

Step Definitions

TestRunner Class

Data Tables and Scenario Outline

Tags, Background

Cucumber Hooks

Cucumber Reports

Cucumber Extent Reports

Cucumber Allure Reports

Module-12: CI & CD Concepts( Git, Github & Jenkins)

Version Control System Overview

Git and GitHub

Git Commands

Continuous Integration (CI) and Continuous Delivery (CD)

Jenkins Overview

Maven Integration with Jenkins

Running Selenium Tests through Jenkins

Creating CI/CD Pipelines -Declarative & scripted

Scheduling Jobs

Cron patterns

What You Will Learn?

  • You will learn how to write test scripts using Selenium WebDriver. .
  • You will know how to identify identify various web elements using Selenium. .
  • You will know how to work with Selenium Grid. .
  • You will know how to design frameworks from scratch. .
  • You will able to work on Real time projects after you completed this course. .
  • You will know about Continuous Integration(CI) Process and Tools..