
Learn Java programming fundamentals and automation testing with Selenium WebDriver, using JUnit, locators, and the page object model to build data-driven tests with Excel and CSV.
Explore how to maximize the course guide by accessing resources, pdfs, installation guides, and code examples from the Java and Selenium sections and GitHub repositories.
Install the Java development kit and set up Eclipse using the provided PDF guide, covering installation steps, path variables on Windows, and basic troubleshooting.
Verify Java and jshell are properly installed by running java -version and jshell -version in your terminal or command prompt, and troubleshoot path variable if jshell fails.
Troubleshoot Java installation by uninstalling older versions, avoiding corrupt downloads, and temporarily disabling firewalls or antivirus; ensure 64-bit Windows for Java 9 and verify the path with Oracle's installation instructions.
Learn why the PATH variable matters, locate the Java bin folder, and set PATH on Windows by editing environment variables and updating the Path value with backups.
Discover how to solve problems with programming, identify key concepts, and apply language syntax in Java, Python, or Scala while tackling everything from multiplication tables to your first programming challenge.
Demonstrate printing the five multiplication table with JShell, following the 1 is equal to 5 to 10 is equal to 50 format, and explore statement expression, if statement, and methods.
Launch JShell, the Java shell REPL introduced in Java 9 (read eval print loop), to type one-line Java code and get immediate feedback, see output, and exit with /exit.
Plan and break down the multiplication table challenge by identifying subproblems, then calculate and print products from 5×1 to 5×10, exploring how to print different tables.
Discover java expressions and operators in jshell, including +, -, *, /, and % with integers and literals. Practice with exercises to calculate minutes and seconds in a day.
Solve Java expression exercises to calculate the minutes in a day and the seconds in a day, applying 24 hours, 60 minutes, and 60 seconds per unit.
Explore literal values, valid and invalid expressions, and Java expression puzzles through beginner-friendly problems. Learn why 5/2 yields 2 and 5.0/2 yields 2.5, and how parentheses clarify intent.
Explore printing in Java with System.out.println, evaluate expressions like 3*4, and print string literals such as '5 * 2 = 10', while learning basic syntax.
Learn to print output to the Java console with System.out.println, completing exercises like Hello World, 5 times 3 equals 15, and the 5 multiplication table.
Learn how to print output to the console in Java by using string literals and evaluated expressions, including Hello world, 5*3, and the seconds in a day.
Explore Java console output puzzles: spaces in string literals, case sensitivity of class names and methods, and escaping quotes, newlines, and tabs; practice method calls like Math.random() and Math.min(23,45).
Learn how jshell handles multi-line input and inline statements, from completing incomplete lines like System.out.println to executing blocks with braces and semicolon-separated statements.
Master formatting and printing calculated values in java with system.out.printf by replacing literals with parameters and using %d to output results.
Explore advanced printing in Java using printf, format specifiers for integers, strings, and floats, and manage argument counts for precise console output.
Introduce variables in Java, cover int declarations and assignments, demonstrate using a variable to print the five times table, and explain declaration versus assignment.
Explore declaring and initializing Java variables, printing A + B + C, and understanding strong typing, undeclared variables, and value copying through practical puzzles.
Explore how variables are stored in memory, learn Java's primitive types, and master assignment operators through a four-video sequence on variable naming conventions and rules.
Explore how variables map to memory: names, values, and locations; understand assignment, copying values, and basic memory concepts like types in Java and memory boxes.
Discover Java variable naming rules and camelCase conventions, including valid characters, starting with a lowercase, and avoiding keywords. Choose descriptive names like int score to improve readability and maintainability.
Understand Java primitive types: byte, short, int, long, float, double, char, and boolean, including ranges, memory, literal formats, and true/false values.
Choose the right primitive types in Java to store values, using byte, short, int, long, float, double, char, and boolean for goals, population, grades, and even checks.
Discover how strings and the plus operator switch between addition and concatenation in Java, observe left-to-right evaluation, and print results with System.out.println.
Explore Java assignment operators with puzzles on increment and decrement, and learn compound assignments like +=, -=, *=, /=, %=, including pre- and post-increment nuances.
Learn jshell shortcuts for history, line editing, and multi-line statements, delivering immediate feedback and practical tips for managing variables and expressions in Java.
Explore Java conditionals and if statements, focusing on boolean conditions, conditional execution, and the for loop's initialization, condition, and update, with examples using System.out.println.
Master Java conditionals through hands-on exercises: compare A+B and C+D, verify triangle validity from angle sums, and check even numbers using the modulus operator; prepare for the for loop.
Practice Java conditionals and if statements with exercise solutions, covering comparisons, equality checks, triangle validation, and using modulus to determine even numbers.
Explore Java conditionals and the if statement through puzzles that distinguish assignment from comparison, learn how blocks group statements, and see how odd and prime checks behave.
Learn the for loop syntax to print a multiplication table, with initialization, condition, and update, from i = 1 to 10, including proper braces and print statements.
Explore Java for loops through practical exercises: print multiplication tables (7, 6, 10), list numbers 1–10 and 10–1, and compute squares of first ten numbers, evens, and odds.
Master for loops in Java by printing multiplication tables with a reusable table variable, iterating 1–10 and 10–1, and computing squares of the first ten numbers, evens, and odds.
Explore the for loop mechanics in Java by examining initialization, condition, and update, including empty statements, multiple statements per part, and blocks that print numbers to illustrate a multiplication table.
Revise Java terminology, including integer and decimal literals, int and double data types, variables and declarations, expressions, statements, assignment operators, for loops, and built-in methods like System.out.println.
Discover how to convert a long multiplication table program into a reusable method, learn to define a method, and handle its inputs and outputs for sharing.
Learn to create your first Java method with a void return type, a name, and a body that prints hello world twice, plus exercises to print thrice and four statements.
Step 02 introduces Java methods through exercises, showing how to name void methods, print statements with System.out.println, and apply camel case while avoiding keywords and invalid names.
Explore editing and managing Java methods in jshell with commands like /methods, /edit, and /save, plus saving backups to backup.txt for session persistence.
Define a Java method with a parameter to print hello world multiple times using a for loop. Learn about void return types, passing int arguments, and method invocation.
Create two Java methods with an int argument n: print numbers prints 1 to n, and print squares prints i squared up to n using a for loop and System.out.println.
Explore how Java methods enforce exact arguments using the Say Hello World example, highlighting zero, string, and decimal inputs, and clarify type mismatches and the parameter vs argument distinction.
Create a no-parameter method named print multiplication table that uses a for loop and system.out.printf to print the base table, then explore adding a parameter.
Add a parameter to the print multiplication table method and demonstrate method overloading with two versions, one with a parameter and one without.
Explore how to pass multiple parameters to a Java method, implement a sum method with two and three parameters, print results, and learn to organize code into methods.
Explore how Java methods return values, using examples like Math.max and a sum method; distinguish void from returning types and implement return statements to assign results to variables.
Practice returning values from java methods with exercises: sum of three numbers and calculate third angle from two angles, using the 180-degree triangle rule.
Define a method by its name, return type, parameters, and body, then learn how a call uses arguments, executes, and returns a value.
Discover how to run a Java program outside the shell by compiling and executing it, and explore key concepts like class, JDK, JRE, JVM, and platform independence.
Explore how Java compiles code to bytecode, then uses JVMs to execute it across Windows, Unix, and Linux, achieving platform independence.
Explore how Java models a class as a template and creates objects as instances, using country and planet examples to show declaring classes and instantiating objects with new.
Define a void revolve method inside a planet class and invoke it on Earth and Venus objects, illustrating how non-static methods require instances.
Move your Java code from jshell into a planet.java file, then compile to planet.class to create bytecode. Ensure the class name matches the file name, and save your work.
Learn how to run a Java program by compiling with javac and running with Java. Define a public static void main method to launch your code.
Learn to write and compile a Java program with the main method syntax and args, and debug compilation errors as semicolons or misspelled names, while comparing jshell and Java execution.
Clarify how the JVM executes Java bytecode by translating it to native instructions, and compare the roles of JRE and JDK, emphasizing platform independence.
Install Eclipse Oxygen or newer for Java development, ensure JDK nine, download from the Eclipse site, unzip, launch, select a workspace, and choose Java or Java EE as needed.
Launch Eclipse, set a workspace folder, and create a new Java SE nine project, then explore the project structure, perspectives, and views.
Create your first Java class in Eclipse, set up a package, add a main method, print hello world with System.out.println, and run as a Java application with the IDE.
Write a Java multiplication table in Eclipse by defining a print method in a class, then run it via a runner class with a main method.
Generalize the multiplication table print method in Java by adding parameters for table, from, and to, and overloading prints. Test in Eclipse to print specific ranges.
Enable Eclipse save actions to automatically format edited lines, organize imports, and enforce coding standards as you save, including trailing whitespace settings and enhanced for loops.
Learn to reduce code duplication by refactoring with a single print method, enabling flexible table printing via parameters and ensuring changes reflect in all methods without altering functionality.
Master debugging in Eclipse by using breakpoints, debug mode, and step over/into to trace a multiplication table program, revealing call stacks and variable values.
Learn to use Eclipse shortcuts like Ctrl+N and Ctrl+Shift+R to create classes and locate files, and compare Eclipse with JShell to understand when to write full programs versus shell expressions.
Explore the fundamentals of object oriented programming by defining classes and objects, and explain state, behavior, encapsulation, and abstraction through practical examples.
Explore the shift from structured procedural programming to object oriented programming by identifying objects, their data (state), and actions (behavior) through flight examples.
Define a class as a template and objects as its instances, and distinguish member data (state), fields, and behavior (methods) through practical examples.
Explore object oriented programming by identifying objects like customer, shopping cart, and product, their state and behavior such as login, add item, and checkout, and begin creating classes.
Create a motorbike class in Java with speed and five gears. Instantiate Ducati and Honda, and implement a start method to demonstrate object state, behavior, and encapsulation.
Create a book class and a book runner, add a main method, and instantiate three book objects. Follow Java conventions: class names capitalized, variables start lowercase, camel case.
Explore how objects maintain state through instance variables like speed, with Ducati and Honda as independent examples stored in memory, illustrating how a class serves as a template.
Learn how encapsulation hides a motorbike's speed behind a private field and enforces updates via a setSpeed method.
Master encapsulation in Java by learning to create private fields and implement getters and setters, and use Eclipse code generation to auto-create these methods.
Explore puzzles about initializing member variables and how set speed updates Ducati's speed from 0 to 100, while Honda remains 0, with debugging tips using breakpoints and step operations.
Explore the first advantage of encapsulation by using methods to validate inputs, prevent invalid speed values, and throw exceptions to enforce safe object state.
Explore the second level of encapsulation by moving speed adjustments into motorbike methods, reducing duplication and encapsulating business logic with increase and decrease speed operations, using Ducati and Honda examples.
Practice encapsulation level two by centralizing validation in set speed and reusing it for increase and decrease. Extend this to copies with set copies to keep logic inside the class.
Explore abstraction as a core concept in object-oriented programming and its relation to encapsulation. See how we call methods through interfaces without knowing internal implementation in Java.
Build on encapsulation and abstraction to learn Java constructors, creating motorbike objects with initial speeds via a constructor, using this.speed and speed parameters to set the initial state.
Create and examine Java constructors, observe how the compiler supplies a default constructor, call other constructors with this, and explore access modifiers alongside no-argument constructors for defaults.
Explore object oriented programming basics by examining class instances, adding data and behavior to classes, and introducing encapsulation and abstraction through practical object examples.
Explore primitive data types in depth, including literals and operators, and learn how to convert between int, float, char, and boolean. Apply these types in classes within object oriented programming.
Explore the Java integer datatype using wrapper classes to determine sizes and max values for byte, short, int, and long, and master explicit and implicit casting, increment and decrement operators.
Explore Java integer representations across byte, short, int, and long, including octal and hexadecimal literals, value ranges, and safe casting. Learn pre and post increment and decrement operations.
Implement a BiNumber class with a two-parameter constructor using the integer data type, and provide add, multiply, and double value methods; test retrieval with getters to verify results.
Explore how Java handles floating point types, including double and float. Learn about default double literals, explicit casts, and conversions between int, float, and double.
Understand why floating point types are inaccurate for financial calculations and learn to use Java's BigDecimal with string constructors for exact results and methods like add, subtract, multiply, and divide.
Learn to use bigdecimal in java by adding bigdecimal numbers and integers with the proper constructor, and understand why string inputs prevent precision loss.
Learn to build a simple interest calculator in Java using BigDecimal for precise calculations. Implement a constructor with principal and interest as strings and compute the total value over years.
Explore boolean data types, true and false literals, and case sensitivity; master relational and logical operators, including or, xor, and not; apply them in if and loop conditions.
Explore the Java boolean data type and the behavior of short circuit operators in conditional expressions. See how post-increment affects values and write clearer, side-effect free code.
Master the Java character data type: use single quotes, Unicode values, numeric codes like 65 for 'A', and operations including int casting and escape sequences like \n and \t.
Build a mycar class that accepts a character, implements isVowel to detect lowercase and uppercase vowels, checks if the character is alphabet, and prints lowercase and uppercase alphabets.
Learn to use the Java char data type to implement is digit, is alphabet, and is consonant checks using ASCII ranges and detect lowercase and uppercase letters.
Learn Java char handling by implementing isConsonant to identify consonants, considering vowels, and print uppercase and lowercase alphabets A to Z with static methods.
Explore the primitive data types in depth, including integer, floating point, boolean, and character types, along with literals, operators, conversions, and big decimal guidance.
Explore Java conditionals, including if, else if, nested if else, and switch, by building a two-number menu app that performs add, subtract, divide, or multiply operations.
Explore the basics of the if condition in Java, showing how code executes when the condition is true and how the else block handles unmet conditions, including or and logic.
Build a Java project to master nested if-else statements, using if, else, and else-if to handle multiple conditions and ensure only one block executes.
Explore how if-else and nested if-else blocks work in Java through puzzles, emphasizing braces for readability and avoiding common mistakes like assignment in conditions and improper comparisons.
Learn how to read user input in Java by prompting with System.out.println, using a Scanner to capture numbers, and building a menu for operation choices (add, subtract, divide, multiply).
Build a simple Java console calculator that reads two numbers and a menu choice, prints the options, and performs the selected operation (add, subtract, divide, multiply) using if-else.
Learn how to implement nested if-else logic in Java for a calculator-like program, performing addition, subtraction, division, and multiplication based on user choice, and consider a switch statement for simplification.
Master Java practice with CodingBat by solving warm-up problems, testing code with built-in checks, and exploring basics, conditionals, arrays, strings, and recursion.
Explore the switch statement as a readable alternative to nested if-else, refactoring to extract a method and using breaks to control flow when performing operations based on a choice.
Explore switch statement puzzles illustrating default, break, and fall-through, and learn that switches run on int, short, or byte (not long), with strings and enums discussed later.
Explore Java switch statement concepts through exercises: isWeekday, name of the month, and name of the day, using static methods with breaks and fall-through.
Boost Eclipse productivity with ctrl+1 (command+1) to auto import, add unimplemented interface methods, create classes, and extract to local variables, constants, or methods.
Explore the ternary operator, a compact conditional that returns values based on a condition, demonstrated with booleans and strings, and its same-type requirement.
Explore conditional statements, including if, switch, if else nested, and the ternary operator. Design a simple menu to choose an operation and publish the result, then move into loops.
Explore loops in depth by comparing for, while, and do-while, choosing the right loop for each situation while learning break and continue.
Explore for loop syntax—initialization, condition, and update—and practice puzzles that print 0 to 10, and even or odd numbers with optional update.
Learn for loop exercises to build a Java class that tests prime numbers with modulus and input guards, practice sum up to N, sum of divisors, and printing number triangle.
Master for loop techniques to sum numbers up to N and to compute the sum of divisors, using a zero-initialized accumulator and divisor checks.
Learn to print a number triangle with a nested for loop in Java, using i and j loops, spaces, and line breaks, plus debugging tips.
Explore Eclipse templates and editor templates to automatically generate the main method, for loops, and sysout blocks using ctrl-space, and learn how to create custom templates in preferences.
Explore the while loop in Java, compare it with if and for loops, and learn how to control execution with a condition, increment the variable, and avoid infinite loops.
Learn to implement a while loop in Java to print squares and cubes up to a limit. Explore inclusive versus exclusive limits using a while-number-player class.
Explore the do while loop in Java, its do { ... } while (condition) syntax, and how it executes at least once even if the condition fails.
Implement a Java do-while program that prompts for a number, prints its cube, and repeats until the user enters a negative value.
Explore how break and continue control loop flow in Java: break exits the loop when a condition is met, while continue skips the rest of the current iteration.
Decide between for, while, and do while by whether the loop count is fixed or ends on a condition, including whether the code should run at least once.
Zero Java Programming Experience? No Problem. Zero Automation Experience? No Problem.
Do you want to become a Great Programmer with Java? Do you want to become a Great Automation Tester with Selenium? Do you want to learn to setup New Automation Test Projects with Junit, TestNG and Selenium Webdriver? Do you want to learn Creating Automation Test Frameworks? Look No Further!
Java ? Yes. Junit ? Yes. TestNG ? Included. Selenium 3 ? Yes.
Selenium Advanced Test Scenarios ? Of Course.
Selenium Standalone and Grid ? Yes.
Data Driven Tests ? Yes.
Page Object Model ? Included.
Build Automation Frameworks ? Yes.
Cross Browser Automation Testing? Yes. Of Course.
WHAT OUR LEARNERS ARE SAYING:
5 STARS - This course is very good. The instructor explains things clearly and provides lots of examples. Highly recommended. easy exercises and several examples!
5 STARS - This course was amazing. It was very indepth look at Java and automation testing. I was a beginner automation test engineer but there are quite a few things that I will be using on my next automation project.
5 STARS - I am able to understand it very quickly as voice and pronunciation is very clear. Also the instructor is very experienced in his topic.
5 STARS - Excellent Course for Beginners - A right place to begin learning Selenium with Java.
5 STARS - Very detailed, easy to follow.
5 STARS - It is awesome.
COURSE OVERVIEW
Writing Your First Automation Test with Java and Selenium Webdriver is a lot of fun.
Java is one of the most popular programming languages. Java offers both object oriented and functional programming features. Selenium can be used for screen scraping and automating repeated tasks on browser.
In this course, you will learn Programming with Java and Automation Testing with Selenium.
We take a Hands-on Approach using Eclipse as an IDE to illustrate more than 200 Java Coding Exercises, Puzzles and Code Examples. We will also write more than 100 Selenium Automation Tests with Java for a wide variety of scenarios.
In more than 350 Steps, we explore the most important Java Programming Features and Selenium Automation Testing Scenarios
Basics of Java Programming - Expressions, Variables and Printing Output
Using Selenium IDE and Katalon Studio to Record and Replay Automation Testing Scenarios
Learn the basics of Selenium Webdriver
Exporting Automation Tests and Setting up new Maven Project for JUnit and TestNG
TestNG vs JUnit
TestNG Advanced Features - XML Suite, Test Reports, Running Tests with Parameters defined in XML and Running Tests in Parallel
Basics of HTML, CSS and XPath
Selenium Locators - By Id, By Name, By Link Text, By Partial Link Text, By Class, CSS Selectors and XPath Expressions
Setting and Reading values from Form Elements - Text, TextArea, CheckBox , Radio Button, Select Box and Multi Select Box
Advanced Selenium Automation Testing Scenarios - Playing with Windows, Modal Windows (Sleep, Implicit Wait and Explicit Waits), Alert Boxes, Window Handles and New Browser Window Launches, Frames, Taking Screenshots, Executing JavaScript Code, Actions Interface to control mouse and keyboard
Set up Automation Testing Frameworks - Tables
Important Interfaces - WebDriver
Introduction to Cross Browser Automation Testing, Headless Testing and Setting up a Basic Cross Browser Automation Testing Framework
Writing Data Driven Testing with Data Providers, CSV and Excel Spreadsheets
Implementing Page Object Model for a Complex Test Scenario
Scaling up with Selenium Standalone and Grid
Java Operators - Java Assignment Operator, Relational and Logical Operators, Short Circuit Operators
Java Conditionals and If Statement
Methods - Parameters, Arguments and Return Values
An Overview Of Java Platform - java, javac, bytecode, JVM and Platform Independence - JDK vs JRE vs JVM
Object Oriented Programming - Class, Object, State and Behavior
Basics of OOPS - Encapsulation, Abstraction, Inheritance and Polymorphism
Basics about Java Data Types - Casting, Operators and More
Java Built in Classes - BigDecimal, String, Java Wrapper Classes
Conditionals with Java - If Else Statement, Nested If Else, Java Switch Statement, Java Ternary Operator
Loops - For Loop, While Loop in Java, Do While Loop, Break and Continue
Java Array and ArrayList - Java String Arrays, Arrays of Objects, Primitive Data Types, toString and Exceptions
Java Collections - List Interface(ArrayList, LinkedList and Vector), Set Interface (HashSet, LinkedHashSet and TreeSet), Queue Interface (PriorityQueue) and Map Interface (HashMap, HashTable, LinkedHashMap and TreeMap() - Compare, Contrast and Choose
Generics - Why do we need Generics? Restrictions with extends and Generic Methods, WildCards - Upper Bound and Lower Bound.
Introduction to Exception Handling - Your Thought Process during Exception Handling. try, catch and finally. Exception Hierarchy - Checked Exceptions vs Unchecked Exceptions. Throwing an Exception. Creating and Throwing a Custom Exception - CurrenciesDoNotMatchException. Try with Resources - New Feature in Java 7.
You will be using Eclipse and Brackets as the IDE. You will be using Maven, npm (Dependency Management), TestNG (XML Test Suite, Parallel, Multiple Browsers), JUnit, Selenium IDE, Katalon Studio, Selenium Standalone and Selenium Grid. We will help you set up each one of these.
Start Learning Now. Hit the Enroll Button!