
Learn to automate web applications with Java Selenium WebDriver, write clean scripts, handle dynamic elements with implicit, explicit, and fluent waits, master TestNG with Selenium 4 features relative locators.
Explore selenium, an open-source suite for automating web browsers with web driver, grid, and ide, supporting major browsers and languages for building a structured and reusable automation framework.
Explore the Selenium architecture from client libraries and the W3C protocol to browser drivers and browsers, and follow the JSON-based end-to-end command flow.
Set up a Selenium project by installing the Java Development Kit, configuring JAVA_HOME and PATH, and creating a Maven project with pom.xml dependencies for Selenium, TestNG, and WebDriverManager.
Set up a new Maven Java project in IntelliJ with the JDK, add Selenium, TestNG, and WebDriverManager dependencies, sync Maven, and verify compilation to start web test automation.
Create a first Selenium test in Java by configuring ChromeDriver, opening love2test.com, maximizing the browser, navigating to the site, verifying the login form, clicking authentication, and closing the driver.
Build your selenium test with TestNG by separating setup, execution, and cleanup using before and after methods to open chrome, navigate to Love2Test, click authentication link, and verify login heading.
Create a first Selenium test using TestNG by setting up the driver with before and after methods, clicking the authentication link, verifying the login heading, and quitting.
Centralize browser setup and teardown with a reusable base class using Selenium and TestNG, so final tests inherit shared setup and focus on test logic in a clean, scalable framework.
Extend a base test class to encapsulate setup and teardown with WebDriver, reuse initialization logic, and run a final test that inherits BaseTest for consistent Selenium test automation.
Explore Selenium navigation commands to control browser history and page movement, simulating real user navigation for end-to-end testing, including getUrl, navigateToUrl, back, forward, and refresh.
Master locator strategies in Selenium—id, name, class name, tag name, link text, CSS selector, and XPath—and learn how reliable locators improve testability on a registration form.
Demonstrate Selenium locator strategies by locating elements with link text, id, name, tag name, class name, CSS selector, and XPath, then navigate to a registration form.
Highlight web elements to visualize Selenium interactions and debug locator issues by using a highlighter utility. Apply a green border and yellow background via JavaScript to locate elements with XPath.
Learn to locate and interact with web elements using click, send keys, clear, isDisplayed, and submit to replicate end-to-end user behavior in Selenium tests.
Explore coding interactions with web elements by building a test class, locating elements by link text and XPath, and verifying the registration form heading is displayed.
Master web test automation with Selenium WebDriver by locating fields by id or name, sending keys, and submitting a registration form with validation. Use waitInSeconds to visualize flow for debugging.
Practice exercise demonstrates a complete end-to-end authentication workflow using Selenium WebDriver, entering credentials, submitting the login form, and verifying login and logout with a realistic test flow.
Continue the authentication test by adding an implicit wait up to 10 seconds, validate the login successful heading with XPath, and verify logout and welcome headings with two-second delays.
Learn to retrieve element information and states with Selenium WebDriver, extracting text, tag names, attributes, CSS values, and location, while validating visibility, enablement, and selection for robust web test automation.
Create a Java Selenium test class RetrievingElementInformationAndStatesTest, locate an h1 with driver.findElement, and print its text, tag name, class attribute, color, location, and size using getText, getTagName, getAttribute, getLocation, getSize, and getCSSValue.
Navigate to the tab window and inspect the checkbox elements, printing their color value and states. Retrieve each checkbox's displayed, enabled, and selected values to validate test outputs.
Explore handling various dropdowns with Selenium WebDriver in the Love2Test app, including simple, multi-select, searchable, and dynamic add options, plus hover-based menus via the Actions class in Java.
Master handling various dropdowns in Java Selenium WebDriver, including normal, multi-select, and searchable styles, and practice selecting options by value, index, and visible text.
Deselect and select options in a Java Selenium WebDriver test using the select and add drop-downs, with visible text, and a searchable drop-down to pick Python and C++.
Master handling dropdowns in Selenium WebDriver by locating the language selector via id or XPath, using actions to hover, click a dropdown item, and verify the selected language as Go.
Demonstrate handling JavaScript alerts in a Java Selenium WebDriver test by navigating to the alerts page, clicking the alert button, switching to the alert, reading its text, and accepting it.
Learn to handle simple, confirm, and prompt alerts with Selenium WebDriver, switching to alerts, printing text, sending input, and accepting prompts via XPath and data test attributes.
Learn to work with iframes in selenium web driver, including switching into frames, handling nested frames, interacting with elements inside frames, and returning to the main page.
Create a Selenium test that navigates to the iframes page, switches to iframe one, and interacts with the name and password inputs, addressing the pitfall of not switching context.
Master web test automation with Java Selenium WebDriver by switching to default content and navigating outer and inner iframes, locating elements by xpath to enter name and password.
Explore how to handle frames and nested iframes in Java selenium webDriver by switching between frames and back to the default content, and printing frame descriptions.
Explore implicit wait in Selenium, a global, polling-based delay that waits up to a set time for elements to appear, and learn when to use it versus explicit waits.
Set up implicit wait with WebDriverManager and ChromeDriver, then maximize the browser and open the dynamic element page. Locate content with an xpath and verify its text using get text.
Discover how explicit wait in selenium uses webdriverwait to pause for conditions like element visibility or clickability, with a 20-second timeout on dynamic content.
Develop an explicit wait test that navigates to the dynamic element page, demonstrates waiting for a did you know element with WebDriverWait up to 20 seconds, and highlights it.
Implement a fluent wait test in Java Selenium WebDriver with a 20-second timeout. Use 2-second polling, ignore NoSuchElementException, and validate dynamicTip and DidYouKnow after adjusting the slider.
Configure Chrome options in Selenium to run headless or incognito, adjust window size, disable extensions and notifications, bypass SSL errors, and support CI/CD testing.
Learn to run cross-browser tests on Firefox by setting up the Firefox driver with web-driver-manager, navigating to love2test, verifying the h1 heading, and closing the browser.
Develop cross-browser testing by coding a LaunchHTest class, configuring WebDriverManager, initializing the Edge driver, maximizing the window, and validating the heading.
Create a Safari test class in Java, initialize a Safari driver, and maximize the window for cross-browser testing on Mac OS, enabling remote automation with the built-in Safari driver.
Master css selectors in selenium using by.cssSelector, including tag name, id, class, attribute, contains, starts with, ends with, and direct or descendant and sibling patterns used in a registration form.
Explore XPath strategies for navigating the complex DOM in Selenium. Learn approaches by tag, id, class, attributes, and relationships like direct child, descendant, and siblings, with performance caveats.
Demonstrate a Java Selenium WebDriver XPath test that locates elements on a registration form using tag name, id, class, and advanced strategies like starts with, contains, and multiple attributes.
Navigate to the dynamic elements page and learn to handle dynamic locators whose attributes change, using XPath with contains and starts with to match dynamic ids.
Explore dynamic locator coding in Java Selenium WebDriver, switching from dynamic id to an XPath, validating a dynamic success message, and addressing element click intercepted with a native click.
Perform a native click in Selenium via the JavaScript executor to click a dynamic, invisible button, bypass overlays and hidden elements, then verify dynamic content.
Learn to replace standard clicks with native clicks using JavaScript executor to overcome element click interception, handling dynamic id buttons and invisible overlays in Selenium WebDriver.
Master scroll-to-element testing by using JavaScript to scroll the element into view with scrollIntoView, click it, and verify the about page heading with Selenium WebDriver.
Develop and verify a scroll-to-element test using Selenium 4 and JavaScript executor to scroll to an about link located by XPath, click it, and verify the about page heading.
Learn how stale element reference exceptions occur when a DOM change after locating an element prompts a retry to re-locate and click the authentication link after a refresh, three times.
Learn to implement a retry mechanism for stale element reference exceptions. Refresh the page, relocate the element, and retry up to three times with logging.
Master web test automation with Java and Selenium by coding a broken images test that navigates to a page, collects image src URLs, and reports valid versus broken images.
Create a broken links test in selenium web driver by validating all anchor tags on the homepage, checking href attributes, ensuring status 200, and highlighting the links for verification.
Learn to disable the Chrome infobar that shows being controlled by automated test software by configuring ChromeOptions with excludeSwitches including enableAutomation, initializing WebDriver, and running the test.
Master selenium 4 relative locators to find elements by position relative to an anchor, using above, below, left of, right of, and near, on the login and validation form page.
Learn to implement Selenium 4 relative locators by locating elements above, below, left, right, and near a central anchor on a login form, with element highlighting.
Explore enhanced window management with Selenium 4, complying with the W3C WebDriver standard, including tab and window creation, navigating to google.com and love2test.com, and actions like minimize and fullscreen.
Develop an enhanced window management test in selenium 4, opening google.com in a new tab and love2test automation practice site in a new window, then minimize, fullscreen, maximize, resize, move.
Explore how to capture a full page screenshot with Selenium 4 in Firefox, covering setup of the Firefox driver, taking the shot, saving it, and verifying the saved path.
Develop a Java Selenium test that captures a full page screenshot using the Firefox driver in Selenium 4, saves it to target/screenshot/full page screenshot.png, and prints the path.
Explore improved devtools support in Selenium 4 with direct Chrome DevTools Protocol integration (CDP) for programmable control over network, geolocation, and console in your tests.
Develop a Selenium test with driver and devtools to monitor network calls, enable network, log request URLs, and navigate home and broken images pages with console messages and geolocation override.
Explore improved file upload and download in selenium 4, including remote file upload via the W3C standard and Chrome DevTools Protocol integration for direct download control, with end-to-end testing steps.
Configures a custom download directory and chrome options, then downloads sample.csv and verifies the file exists. Suggests updating selenium to resolve CDP warnings.
Configure testng.xml to centralize test management and leverage TestNG features such as annotation, parallel execution, and data-driven testing in a Java Selenium workflow.
Set up a testng.xml in your IDE, configure suite1 and a regression test, reference action classes, refresh Maven dependencies, and run tests with TestNG, including drag-and-drop and alert tests.
Learn to write TestNG tests in Java, create packages and classes, and launch, login, and logout. Control execution order with priority and depends on methods in your IDE.
Explore TestNG annotations and their flow, from before and after suite, test, group, class, and method to @Test execution, including setup, teardown, browser launch, login and logout, and report publishing.
Develop a TestNG annotations flow test that initializes db and configurations before suite, launches the browser and performs login before tests, and cleans up after tests with smoke group support.
Explore TestNG assertions that validate expected versus actual results using methods like assert equal, not equal, true, false, null, not null, and same, plus soft asserts for combined validation.
Add assertions to the registration form test, validate full name, email, and phone number using dynamic data and text retrieval, and ensure locators adapt to data changes.
Master parameterized testing by running the same test with multiple data sets, injecting username and password via testng.xml or a TataProvider, and printing credentials to verify data-driven login tests.
Learn to build parameterized tests with testng.xml by defining username and password parameters, injecting them into test methods, and running multiple data sets to validate login and authentication forms.
Demonstrate parameterized testing with TestNG DataProvider by defining a login data set and injecting it into a login test, running three credential pairs to showcase data-driven authentication.
Learn how TestNG reporting generates HTML, XML, and console logs with pass, fail, and skipped results, including execution time. Configure Maven Surefire and run mvn clean test for CI-CD integration.
Configure TestNG reporting in the automation framework by adding the plugin to pom.xml, running mvn clean test, and viewing the index.html and emailable reports for four passing tests.
Develop and configure TestNG listeners by implementing iTestListener in a MyTestListener class to log test start, success, failure, and skipped events using result.getName.
Develop a screenshot on failure test by extending the base test, wiring a test listener to capture a screenshot on failure, and saving it to target/failure screenshot location.
Discover our automation framework and its structure, a blueprint of guidelines, coding standards, and reusable components that organize, maintain, and scale test scripts with robust reporting.
Create and refactor a java selenium testng automation framework by reorganizing the project structure into framework with packages for constants, listeners, pages, utils, and a config directory.
Understand the page object model design pattern in Selenium, where each page becomes a Java class with locators and actions, and tests call page methods for maintainable, readable, reusable automation.
master the page object model in Java Selenium, creating home and authentication pages, defining locators and reusable actions, and implementing login, welcome checks, and logout in a test workflow.
Explore object-oriented programming concepts—inheritance, encapsulation, polymorphism, and abstraction—and see how they enable modular Java automation via base test classes, page objects, and WebDriver integration.
Explore inheritance, encapsulation, polymorphism, and abstraction through a framework. See how base and page classes enable reusable setup, private locators, and cross-browser WebDriver compatibility.
Create a TestDataConstant class and define base url, auth url, login url, and registration url, then store admin credentials for use in Selenium test scripts.
Develop a property file reader to configure browser and environment settings, load config.properties via a utility class, and switch between Chrome and Firefox in Selenium tests.
Define a wait time utility in the framework as a WaitTimeUtil enum with duration constants (very short to page load) and getters for seconds and millis.
Learn to highlight a web element without changing test code by toggling a debug flag in the config, enabling or disabling the highlighter during should be displayed checks.
Add logs to measure element locating time in the authentication test, printing startTime, endTime, and duration, along with locator details, then review detailed logs after running the test.
Are you ready to kickstart or accelerate your career in test automation and modern software development?
This course is your complete guide to mastering web test automation, UI testing, and end-to-end testing (E2E) using Java and Selenium WebDriver. You will learn how to build modern automation frameworks with Selenium WebDriver in Java and apply them to real-world testing projects.
Whether you're a developer looking to build robust automated tests or a manual tester aiming to transition into automation, this course is designed to take you there step by step.
We begin with the fundamentals of Selenium WebDriver and Java and quickly move into advanced concepts such as cross-browser testing, framework design, synchronization strategies, and data-driven automation. You will gain hands-on experience with real-world projects that mirror what you will encounter in the workplace. You will test modern web applications, including forms, navigation flows, dynamic content, and real user interactions.
You will start writing automated tests early in the course and build your skills step by step.
In today’s AI-driven world, more code is being generated automatically. That makes test automation an essential skill. You will learn how to build automation tests that validate generated code and catch issues early before they reach production.
You will also learn how developers and QA engineers use Selenium WebDriver for automated UI testing and end-to-end testing, along with best practices for structuring test code, managing test data, and building scalable, maintainable automation frameworks using Maven and TestNG.
By the end of this course, you will have built a complete Selenium WebDriver automation framework that you can use in your own projects, add to your resume, or showcase to employers.
Learn from an experienced instructor with a proven track record of teaching Java and Spring development to hundreds of thousands of students worldwide.
What Makes This Course Unique
Start from Zero: No programming experience required
Real-World Projects: Build automation frameworks used in industry
Modern Stack: Java, Selenium, Maven, and best practices
Step-by-Step Teaching: Clear explanations with hands-on coding
Developer-Friendly Approach: Learn how to integrate Selenium into real-world Java applications
Instructor Support: Fast, detailed help in Q&A
Who This Course Is For
Developers who want to add automated testing to their skill set
Manual testers looking to move into automation
QA professionals preparing for Selenium-based roles
Beginners with no programming background
Anyone transitioning into test automation
Student Praise from My Other Courses
“Best structure and teaching method I've ever seen. You make every concept easy to understand.” – Dave Z.
“The best Java instructor on Udemy. Bar none.” – Muzi P.
“Real-world, industry-ready examples. Worth every penny.” – Premang
“You are the gold standard for teaching software development.” – Julie H.
Join 900,000+ Java developers already learning with me on Udemy.
Let’s master web test automation with Selenium together and take your coding skills to the next level.
Tools & Technologies
Java 25+ (works with Java 17+)
IntelliJ IDEA (free version)
Maven (for dependency management)
We are Responsive Instructors
Got a question? We respond to all questions within 24 hours.
You're never learning alone. We're here to help you every step of the way.
Start building modern, production-ready test automation frameworks with Java and Selenium today.