
Learn how to download and install JDK 10 from the Java Archive, create a free Oracle account, and verify installation with java -version across macOS and Windows.
Download and install Eclipse IDE using the Eclipse Oxygen installer, set up a Java EE Developers workspace, and explore the project explorer, editor, and console in the IDE.
Create and run your first Java program in Eclipse by building a Java project, adding a package and class with a main method, and printing hello world.
Learn about Java's primitive data types: byte, short, int, long, float, double, char, boolean, and note that string is not primitive; declare with suffixes f (float) and optional d (double).
Explore basic arithmetic operators in Java, including addition, subtraction, multiplication, division, modulus (remainder), and increment/decrement, with shortcut forms like += and *= explained through simple examples.
Explore how logical and bitwise operators work in Java, using boolean values and binary arithmetic to explain &&, ||, !, &, |, ~, and binary-to-decimal conversions.
Explore relational operators in Java to compare two numbers using ==, !=, >, <, >=, and <=. Learn how num1 and num2 comparisons determine equality, inequality, and order.
Explore the if condition in Java, evaluating boolean true or false to control code execution. Use else blocks to handle false conditions and define scope with braces.
Apply nested if statements to branch logic for grading students by marks and avoid evaluating all conditions, and practice finding the largest of three numbers.
Learn the for loop to run code multiple times with initialization, limits, and increments like i++ or i+=2, and find even numbers 1–100 using i % 2 == 0.
Practice writing a java for loop to generate the first 20 fibonacci numbers, using num1, num2, and num3, and print each result by swapping values after each iteration.
Explore nested for loops by nesting a for loop inside another, iterating i from 1 to 10 and j from 1 to 5 to produce 50 iterations.
Create a star pattern using a nested for loop, with an outer loop for six rows and an inner loop printing i stars per row, with newlines after each row.
Explore while and do while loops, their conditions, and iteration behavior with practical examples showing how a>50 controls repetition and why do while runs at least once.
Explore how break and continue manage loops, with break exiting the loop and continue advancing to the next iteration in both for and while loops.
Learn basic string operations in Java: create strings, concatenate with + or concat, assess length and indices, trim spaces, convert to upper or lower case, and check for emptiness.
Learn string comparison operations such as equals, equals ignore case, and compare to, and see how matches with regular expressions can aid testing by returning booleans or numeric results.
Explore string search operations in Java and Selenium, including contains, starts with, ends with, index of, and last index of, with index variations. Also learn a workaround to ignore case.
Master string slice operations in Java, including character retrieval by index, substring with begin and end indices, and reversing strings. Learn to split by a delimiter into an array.
Learn to use string replace and replace all to find and replace characters or words, including regular expression patterns, and remove special characters.
Learn how to convert integers to strings and to various bases—binary, hex, and octal—and back, using toString, toBinaryString, toHex, toOctal, and radix-based parsing in Java.
Learn how a class acts as a template for objects with variables and methods, and how to instantiate them using new and constructors to create multiple objects.
Demonstrates how to define an employee class with name, id, and salary, implement a 20% bonus calculation, and instantiate two employees in a main class to display bonuses.
Learn how to create and call Java methods, use arguments and return values, and share methods across classes using objects, including public void methods and integer returns.
Learn method overloading in Java by using the same method name with different argument types, numbers, or orders, and see how Java resolves the correct method.
Explore how public, default, and private access modifiers govern visibility within a class and across packages, with examples. Introduce protected access and its role in inheritance.
Understand constructors in Java, how they initialize object data, and how overloading, the this keyword, and default versus explicit constructors work, illustrated by a road toll example.
Explore data encapsulation in Java by hiding class fields with private access and exposing controlled access through getters and setters, ensuring maintainability and flexible code when names change.
Explore the static keyword and how static members belong to the class rather than any object, are shared across instances, and can be accessed directly via the class name.
Explains how the public static void main method acts as the entry point for Java programs, how the JVM provides the runtime environment, and how string args pass command-line parameters.
Develop and test a bank account class to demonstrate class and object concepts, using a constructor to initialize private fields and methods to deposit, withdraw, and display balance.
Explore the math class in the java.lang package and its static methods for min, max, pow, sqrt, cube root, pi, e, ceil, floor, round, and Math.random.
Explore the StringBuilder class in Java and learn how it enables mutable string concatenation, avoiding many temporary objects. Discover the append method and other methods like delete and reverse.
Discover how to manipulate strings in java using StringBuilder methods—insert, replace, delete, and reverse—with index-based examples and explanations of begin and end indices.
Explore using the Scanner class to capture user input in Java, including strings, integers, and doubles, via system.in and java.util import; reverse strings with a for loop and display results.
Learn to generate random numbers in Java using the Random class (java.util) and Math.random, with for loops and range tricks to produce values in 0–1000, 0–100, and 1000–10000.
Explore how to generate universally unique identifiers with the UUID class in Java, using randomUUID to produce 128-bit alphanumeric values and display ten examples.
Explore the var keyword in Java 10, learn how type inference works for primitive data types and objects, and understand when var can and cannot be used.
Discover how Java 10 introduces a garbage collector interface to simplify adding or removing garbage collectors and boost garbage collection performance in the JVM.
Discover Java 10 updates, including object heap allocation to user-specified memory devices for high-priority processes on multi-JVM servers, and a six-month release cadence. OpenJDK builds gain root certificates enabling TLS.
Explore class inheritance in Java, reuse parent features with extends, and apply is-a relationships through examples like polygon, triangle, and rectangle, using base, height, and area methods.
Explore method overriding in inheritance by comparing it with overloading, using animal, dog, and cat examples where subclasses override the parent method to print their identity.
Polymorphism in Java lets an object take multiple forms, as an Animal reference 'a' is instantiated as a Dog and then a Cat, enabling different behaviors.
Learn how the super keyword accesses the superclass to call methods and fields, demonstrated with class A and B, method overriding, and parent implementation calls.
Explore how the super keyword invokes the parent class constructor when a subclass initializes, including explicit one-argument constructors, no-argument defaults, and handling multiple super arguments.
Explore the protected access specifier in Java, showing how it acts like default within the same package but remains accessible to subclasses outside the package via inheritance.
Explore how abstraction hides implementation details in Java using abstract classes, abstract methods, and interfaces, with a multi-layer architecture exemplified by iOS and Android implementations.
Explore how Java interfaces define abstract methods and how classes implement them, including interface inheritance and multiple inheritance, while contrasting interfaces with abstract classes and noting static and default methods.
Discover how the final keyword in Java makes fields constants, prevents method overriding, and prohibits subclassing of final classes, with practical examples and naming conventions.
Learn arrays as collections of similar data types, with 0-based indexing and fixed length. Declare, initialize, access, update elements, and iterate using a conventional for loop, avoiding out-of-bounds errors.
Declare an array with a fixed size without initial values and observe default values, such as 0 for integers; later, assign values to specific elements, while the length stays fixed.
Explore the enhanced for loop for array iteration, with a multiplication table in an array and displaying its elements, and apply for-each to arrays, array lists, and linked lists.
Learn to reverse an integer array by swapping symmetric elements with a for loop using indices from start to mid, guided by a temporary variable.
Master 2-D arrays in Java as arrays of arrays, accessing and updating elements by index, determining row lengths, and iterating with nested loops.
Build a 2-D int array in Java to hold multiplication tables from 2 to 6 using nested loops. Fill with i*j using arr[i-2][j-1] and print each table on one line.
Create and iterate an array of objects to hold string, integer, double, and char values for flexible test data. Build a two-dimensional array of objects and print each row.
Explore ArrayList in Java, a dynamic array that implements the List interface. Learn to declare, add, get, set, remove, contains, sub list, size, isEmpty, toArray, and iterate.
Explore the structure of doubly linked lists, examining head and tail, previous and next pointers, and how the actual data sits between linked elements at noncontiguous, random locations.
Explore how LinkedList implements the list interface and differs from ArrayList, and master core operations: add, get, set, remove, clear, contains, indexOf, peek, and poll.
Compare ArrayList and LinkedList: ArrayList uses a dynamic array for fast index access; LinkedList uses a doubly linked list for easier insertions and deletions.
Use Java list iterator to traverse lists forward and backward with next, previous, hasNext, and hasPrevious, and modify elements with itr.remove and itr.set for nulls and odd-to-even updates.
Understand how Java sets disallow duplicates and do not guarantee insertion order, focusing on hash set operations (add, remove, contains, size) and unions, intersections, and converting to a list.
Explore linked hash set, an ordered variant of hash set that preserves insertion order, uses a doubly linked list, and supports add, remove, clear, contains, size, and list conversion.
Explore tree set, an important sorted set implementation that maintains elements in ascending order, unlike hash set; learn to create, add, and display names and numbers, and convert to list.
Explore iterating over sets using modified for loops and iterators, compare hash set and tree set behavior, and learn how to traverse without index access.
Explore hash map basics in Java by storing key-value pairs, using put and get to add and retrieve, check containsKey, and convert to keySet, values, and entrySet.
Explore TreeMap, which uses a red-black tree to sort entries by keys, and learn core operations like put, get, contains value, replace, and poll first or last entry.
Learn to iterate over a map by converting it to a set and using a for-each loop or an iterator, with integer keys and square-root values.
Discover the fundamentals of regular expressions in Java, including pattern creation, meta characters and quantifiers, and replacing non-digits or special characters with regex.
Explore quantifiers in regular expressions, using asterisk, plus, and question mark to repeat characters or blocks, and braces for exact or ranged counts, with grouping and the matches method.
Explore character classes in regular expressions, including \d, \w, \s, \D, and \W, and learn escaping and quantifiers with practical phone number and password examples from the Selenium course.
Learn how bracket expressions in regular expressions select one of several characters using square brackets, define ranges (A–Z, a–z, 0–9), apply negation with a caret, and use quantifiers for repetition.
Discover the or operator in regex by using the pipe symbol to pick one option from a group, with examples like ab, ac, ad, or xyz.
Explore the dot operator in regex, which matches any single character, and how dot plus asterisk forms greedy patterns like (.*) that match various strings.
Explore greedy and non-greedy regex matching in Java, using dot asterisk and quantifiers to capture text between x x and y y with Pattern and Matcher, counting matches.
Learn to build a RegEx pattern that represents four websites using grouping and the pipe symbol, and escape dots to treat them as literals in Java.
Develop a regex pattern to extract prices from a string, matching formats like 24.99$, 0.99$, and 12.09$, and use Java's Pattern and Matcher to print each match.
Master regular expressions to regularize number ranges, using patterns for 0–9, 0–99, 0–1000, 99–9999, and interview-ready ranges like 25–75 and 220–240.
New Update: Selenium v.4 New Features Added. See 'Section 28' for more details.
This course covers Selenium WebDriver and Java topics in detail from basic to advanced levels. So, if you don't have prior knowledge of Java, then you can begin with Java Modules. Start going through ‘Selenium WebDriver’ videos after you develop some fluency in Java. Remember, you don’t need to go through all sessions of Java Course before starting with Selenium WebDriver (because it is an in-depth course on Java and will take a while to finish). First 6 Sections of Java should be sufficient to get you ready for learning Selenium WebDriver.
I believe in example-oriented teaching. So, you won’t find any PPTs during the sessions. But, you will find dozens of real time scenarios used to elaborate Java and Selenium WebDriver concepts.
Feel free to post your questions/feedback in the block provided under each session-video. I will make sure all of your queries are addressed. ‘Course Outline’ below will give you an idea about the depth and the overall coverage of this course. If you want to learn any other Selenium WebDriver concept - which is not already covered in this course - then feel free to let me know via Udemy messenger.
Course Outline:
Java Basics
JDK 10 and Eclipse Installation
Hello World Java Program
Primitive Data Types in Java
'var' keyword in Java 10
Arithmetic Operators in Java
Logical and Bitwise Operators in Java
Relational Operators in Java
If - Condition in Java
Nested If - Condition in Java
For Loop in Java
Hands-On Exercises on 'For Loop'
Nested For Loop in Java
Hands-On Exercises on 'Nested For Loop'
'While' & 'Do While' Loop in Java
Loop 'Break' & 'Continue' Statements in Java
String Basics in Java
String Comparison Operations in Java
String Search Operations in Java
String (Cut) Slice Operations in Java
String Replace Operations in Java
String Conversion Operations in Java
Object Oriented Programing (OOPS) in Java
Concept of Classes and Objects in Java
Hands on exercises on Class and Object
Methods in Java
Method Overloading in Java
Access Specifiers (Access Modifiers) in Java
Constructor in Java
Data Encapsulation in Java
Static Keyword in Java
Concept of Main Method in Java
Class and Object Advanced Exercises
Class Inheritance in Java
Method Overriding in Java
Polymorphism in Java
Super Keyword in Java
Super Class Constructor in Java
Protected Access in Java
Abstraction in Java
Interfaces in Java (Java Interface)
Final Keyword in Java
Data Structures in Java
Arrays in Java
Array Object in Java
Enhanced (Modified) For Loop for Array Iteration in Java
Hands-on Exercises on Array in Java
2-Dimensional Arrays in Java
Hands-on Exercise on 2D Arrays in Java
Array of Object in Java
Array List in Java (ArrayList)
Structure of ArrayList in Java
Linked List in Java (LinkedList)
ArrayList vs LinkedList in Java
List Iterator in Java
Hash Set in Java
Linked Hash Set in Java
Tree Set in Java
Iterating on Set in Java
Hash Map in Java
Tree Map in Java
Iterating Over Maps in Java
Regular Expressions in Java
Introduction to RegEx in Java
Quantifiers in Regular Expressions
Character Classes in Regular Expressions
Bracket Expressions
OR Operator in RegEX
DOT Operator in RegEX
Greedy and Lazy Matching
Hands-on Exercises on Regular Expressions
Regularizing Number Ranges
Exception Handling in Java
What is an Exception in Java?
Error vs Exception in Java
Checked and Unchecked Exceptions in Java
Throws Declaration in Java
Try and Catch Block (Exception Handling) in Java
'Finally' Block in Java
Date and Time Operations (Revised in Java 8)
Local Date and Time Operations in Java
Custom Date and Time Operations in Java
Future and Past Date Operations in Java
Future and Past Time Operations in Java
Date Difference Calculation in Java
Time Difference Calculation in Java
DateTime Formatter in Java
Special Classes in Java
Math Class in Java
StringBuilder Class in Java
StringBuilder Methods in Java
Scanner Class in Java
Random Class (for creating random numbers) in Java
UUID Class in Java (for creating universally unique string IDs)
Working with File System in Java
How to Read a Text File in Java?
Apache Commons IO
How to Edit a Text File in Java?
Hands on Exercises with Text Files in Java
Copy and Move (Rename) a Text File in Java
Apache POI Setup
Reading Excel Data in Java
Read Excel Data into a 2 D Array in Java
Write Data in Excel Sheet in Java
Interview Questions
Selenium WebDriver Basics
Selenium WebDriver Architecture
Selenium WebDriver Installation and Setup using Apache Maven
Chrome Driver Installation and Setup
Firefox (Gecko) Driver Installation and Setup
Automating Browser Navigation (Back, Forward, Refresh, NavigateTo)
Get Page Basic Details (URL, Title etc)
Basics of Element Locating Strategy in Selenium WebDriver
HTML Basics
Inspecting Web Elements
Find Elements By ID and Link Text in Selenium WebDriver
Find Elements By Name and Class
Locating Elements using XPath in Selenium WebDriver
Installing ChroPath for Chrome
Creating XPath Using Attributes
XPath for Dynamic Elements
XPath Using Parent - Child Relationship
XPath Using Ancestor - Descendant Relationship
XPath Using Preceding - Following Relationship
Absolute XPath Vs Relative XPath
Locating Elements using CSS Selectors in Selenium WebDriver
What is CSS and CSS Selectors?
Create CSS Selectors Using Attributes
CSS Selectors for Dynamic Elements
Create CSS Selectors Using Multiple Attributes
Advance CSS Selectors
Creating CSS Selectors Using Child-Node Numbering
Working with Element Collections in Selenium WebDriver
How to Retrieve a Collection of Web Elements in Selenium WebDriver?
Handling Web Elements Collection in Selenium WebDriver
Visible vs Hidden Web Elements in Selenium WebDriver
Web Elements Within Another Web Element in Selenium WebDriver
Web Page Data Extraction for Test Validation in Selenium WebDriver
Extracting Basic Page Details in Selenium WebDriver
Extracting CSS Details in Selenium WebDriver
How to Verify Element Visible and Enabled?
How to Verify Element Exists in Selenium WebDriver?
How to Verify Element Selected in Selenium WebDriver?
Automating Special WebElements (SelectBoxes, DatePickers, WebTables)
Working with Select-Boxes in Selenium WebDriver
Working with MultiSelect-Boxes in Selenium WebDriver
Automating Date-Picker (Calendar) in Selenium WebDriver
Working with WebTables in Selenium WebDriver
Handling the Objects Within WebTable Cells in Selenium WebDriver
Automating Browser Popups using Selenium WebDriver
Handling Browser Popup Window in Selenium WebDriver
Working with Multiple Browser Windows in Selenium WebDriver
Close All Browser Popup Windows in Selenium WebDriver
Browser Close vs Quit in Selenium WebDriver
Automating iFrames using Selenium WebDriver
Automating iFrames using Selenium WebDriver
Automating Nested iFrames using Selenium WebDriver
Automating JavaScript Alerts using Selenium WebDriver
Handling JavaScript Basic Alert Box using Selenium WebDriver
Handling JavaScript Confirmation Box using Selenium WebDriver
Handling JavaScript Prompt Box using Selenium WebDriver
Automating Mouse Actions (Drag & Drop, Mouse Hover, Click & Hold etc)
Automating Mouse Hover Action using Selenium WebDriver
Automating Right Click Action using Selenium WebDriver
Automating Drag and Drop Action using Selenium WebDriver
Resizing UI Elements using Selenium WebDriver
Automating Sliders using Selenium WebDriver
Automating Multi-Key Operations using Selenium WebDriver
Test Synchronization in Selenium WebDriver
What is Test Synchronization?
Implicit Wait in Selenium WebDriver
Explicit Wait in Selenium WebDriver
Selenium 4 Updates
Selenium v.4 Configuration
Update in Implicit Wait
Opening New Browser / Tab
Relative Locators
Minimizing Browser Window
Actions Class Update
TestNG Framework
Installing TestNG
Automating Basic Tests in TestNG
Assertions in TestNG
Hard vs Soft Assertions in TestNG
BeforeMethod and AfterMethod Annotations
BeforeClass and AfterClass Annotations
Managing Test Execution Using TestNG XML Files
Include and Exclude Methods in XML File
BeforeTest and AfterTest Annotations
BeforeSuite and AfterSuite Annotations
TestNG Groups
TestNG Parameters
Managing Test Dependencies in TestNG
Ignoring Test Methods in TestNG
Parallel Execution in TestNG
TestNG HTML Reports
Data Provider in TestNG
Creating Automation Framework from Scratch using Page Object Model and WebElements Page Factory
What is Page Factory?
Elements Collection (List) in Page Factory
Initializing Page Factory Elements
Page Object Model Design
Creating Base Page Class
Creating Page Library
Creating Flow Library
Course Outline Ends.....
**I will be updating more topics to this outline as per changing trends in technology**
This course is designed for you if you are:
a QE Automation Engineer OR
a Selenium WebDriver automation aspirant OR
a manual testing professional willing to jump start your automation carrier OR
a QTP/UFT professional wanting to switch to Selenium as per testing market demand OR
a QE Manager exploring better automation solutions for your project OR
a fresh grad looking to learn a quick new skill which has high demand in the job market OR
aspiring to learn coding and automation
Training program requirements/prerequisites:
No prior coding experience required. Java programing from scratch is covered in the course.
Participants need to have a Windows 10 PC OR a MacBook with 8 GB (or more) memory to perform hands on exercises.
To get the maximum benefit from the course, please take a look at following steps explaining 'How to take this course?'
Step 1: Schedule 30-45 minutes of your time daily for 5 days a week. 'Continuity' is the key.
Step 2: All sessions are divided in small videos of less than 20 minutes. Watch 2-3 videos daily.
Step 3: Hands-on exercise is very important. So, immediately try out the programs discussed in the session. Try them on your won. You can download these programs from lecture resources.
Step 4: Assignments with answer keys are provided where-ever necessary. Complete the assignments before jumping on to the next sessions.
Step 5: If you come across any questions or issues, please feel free to contact me and I will make sure that your queries are resolved.
Happy learning!!!
Note: All the course videos are in Quad HD. For the best video streaming quality, please adjust the resolution from 'settings' at bottom right-hand corner of video player. Choose 1080p or 720p as per your network speed.