
Explore the data driven approach as the foundation for future live projects, and distinguish it from frameworks while introducing design patterns like page object model and common utilities.
Create a new maven project for a selenium web driver framework, organizing packages for test cases, utilities, and resources, and configure dependencies in pom.xml from the mvn repository.
Design a base test class to initialize webdriver, logs, reports, and configurations using config and properties files, with setup and teardown annotated for the entire test suite.
Configure WebDriver by reading properties and set the appropriate driver (Firefox, Chrome, or IE). Create and run the first login test case using the bank manager login button.
Implement and configure application and selenium logs by adding the log jar to pom.xml, setting up property files and paths, and a logger to capture request and response events.
Add assertions to verify the bank manager login flow by checking the presence of the add customer button with a CSS locator and an isElementPresent method, asserted via assert true.
Introduces a second test to add customers via a data provider reading first name, last name, and postcode from Excel, validating the alert 'customer added successfully'.
Add the reporting dependency and Google Jews to your pom.xml, configure reporting listeners in your test xml, and customize reports with messages, links, and screenshots for failure visibility.
Implement TestNG listeners to centralize failure handling by capturing screenshots in a custom listener on test failure and optionally on test success, integrated via test.xml to attach results.
Learn to capture a screenshot in selenium webdriver tests using a test utility, maven surefire plugin, and pom.xml configuration for target/surefire-reports/html.
Implement timestamped screenshots for each test failure by generating a unique name from the system date, updating test utilities and listeners, and attaching distinct screenshots to the Maven Surefire report.
Learn to implement extend reports with Selenium WebDriver by creating an extend manager and singleton extent reports instance, loading a config, and logging test outcomes with screenshots.
Develop reusable click and type keywords that use locators (css, xpath, or id), log steps to Extent Report, and enable dynamic, locator-specific test cases like bank manager login.
Implement a common data provider to read test data from Excel sheets via a test util class and reuse it across tests.
Demonstrates implementing robust test validation with both hard and soft assertions, capturing screenshots on failures, and reporting via extent reports and logs to ensure tests continue after errors.
Automates the open account test by defining locators for dropdowns, using a select class to choose customer and currency, and parameterizing data from Excel to run multiple test iterations.
Set up run modes for test suites using an Excel sheet to decide which test cases run or skip, enforced by a listener and reflected in extent reports.
Set up run modes in Excel test data to selectively execute valid datasets using a data-driven approach, with hash table parameterization and a data provider to drive tests.
Configure Jenkins to schedule Maven builds, start the service with java -jar, set Java and Maven paths, create a Maven project, point to pom.xml with clean and test.
Learn to display extent reports inside Jenkins by installing and configuring the HTML publisher plugin, archiving the extent reports directory, and viewing graphical failure screenshots within the Jenkins UI.
Parameterize a Jenkins build for browser and environment using choice parameters and environment variables, mapping selections to config property for Chrome or Firefox and staging, beta, or production URLs.
Learn to configure Jenkins and the Java mail API to automatically email test results, including building a mail sender utility, computing host address, and sharing a link to extended reports.
Selenium 4.6 introduces built-in Selenium manager that auto downloads browser drivers, eliminating manual executable setup and enabling seamless Chrome, Gecko, and Edge automation with Maven or jar usage.
Update the Excel Reader to Apache POI 4.1.0 and adjust cell type handling to fix exceptions, enabling seamless reading and writing of Excel files via the Pi API.
Configure the log forge API to generate application logs for Selenium, APM, and rest assured, using file appenders with properties or XML and per-run timestamped log files.
Learn to configure log forge logging in tests by adding log forge api and code dependencies, obtaining a logger from log manager, and writing logs to app log.txt with levels.
Establish a JDBC connection to a MySQL database using the MySQL connector and a database URL, username, and password. Fire queries and validate results with the DB Manager utility.
Selenium 4 switches from the JSON wire protocol to the W3C standard for browser communication. It adds relative locators, element screenshot, and Chrome DevTools integration, plus streamlined grid setup.
Selenium 4 enables opening new tabs and popups, switching between windows and tabs, and managing window handles to navigate multiple sites in one session.
Explore Selenium 4's relative locators to uniquely identify elements using positions such as above, below, right of, and near a reference element, with practical examples.
Learn to configure Selenium Grid 4 in standalone, hub and node, and distributed modes using the Selenium Server jar; run parallel tests on Chrome, Firefox, and Edge via remote WebDriver.
Explore eight Selenium WebDriver locators, focusing on id, name, CSS selector, and XPath, and learn to create unique relative and absolute XPaths for dynamic elements.
Master absolute, relative, and partial xpaths, learn to validate with copy XPath using browser dev tools, and leverage Crow Path extensions across Chrome and Firefox to locate unique elements.
Compare XPath and CSS selectors for locating elements, noting XPath can navigate the hierarchy and match text, while CSS moves down the hierarchy and cannot match text.
Explore selectors hub, a cross-browser plugin that auto generates unique xpath and css selectors for complex elements; master its debugger and multi-language code snippets, while reinforcing manual xpath skills.
Learn how TestNG enhances Selenium and API automation with annotations, surpassing JUnit. Configure TestNG in Eclipse via Maven dependencies or the Eclipse plugin for test suits and reports.
Create and execute the first test case using test annotations in a Selenium WebDriver project. Learn about TestNG annotations, before/after hooks, test priorities, and basic test structure.
Learn to implement assertions in Selenium tests to compare expected and actual results, report failures with meaningful messages, and use assert equals and assert fail to drive accurate test reports.
Discover how to replace hard assertions with soft assertions to execute all steps and report multiple failures within a single test, using soft assertions and softAssertAll.
Learn how test dependencies work in selenium automation, using depends on methods and always run to control execution order, skip behavior, and soft dependency across multiple tests.
Create and run a test suite by generating or converting a testng.xml, auto-selecting classes with test annotations, naming tests distinctly, and executing the suite in a defined sequence.
Organize functional and regression tests into separate XML files, then create a master suit file to run both the functional suit and regression suit together.
Learn how to group test cases into functional and smoke categories, include or exclude groups in test execution via test.xml, and control runs with group dependencies.
Learn how TestNG listeners trigger actions on test events, capture screenshots on failure, and implement a custom ITestListener to handle onTestFailure and onTestSuccess, configured via testng.xml.
Learn to forcefully skip tests by throwing a skip exception when a condition is not met, and see the skip reflected in the report based on a dependent method's outcome.
Create a base test class with a setup to initialize logging, database, API, and webdriver, and a teardown to quit, using before suite and after suite annotations to run once.
Learn to generate and customize test reports in TestNG, converting execution results into interactive HTML and email reports with passing, failing, and skipped test details, and attached screenshots.
Learn how reportng provides an html reporting extension for selenium tests, using a pom.xml dependency and a listener to generate interactive test reports and screenshots.
Parameterization uses a data provider to run a login test with usernames and passwords from an Excel sheet, treating each row as a separate test case.
Learn how to read data from an Excel sheet and parameterize tests with TestNG using a data provider and an Excel reader file built on Apache POI.
Shows how to replace multiple Excel columns with a per-row hash table for TestNG parameterization, mapping column names to values and passing a data argument via a two dimensional array.
Create a data providers class with named providers (dp1, dp2) returning two or three column object arrays, then link tests to providers and reuse them across tests with varying arguments.
Read test parameters from a TestNG XML file by defining browser and environment in parameters.xml and injecting them into tests; run with Firefox and Chrome to illustrate parallel execution.
Learn to run parallel tests with a data provider in Selenium using TestNG, supplying multiple browser data sets via a two-dimensional array, and enabling parallel execution with parallel=true.
Introduce Docker and container concepts, enabling data-driven tests to run in parallel with grid, while comparing containers to virtual machines and emphasizing packaging applications with libraries.
Explore Docker installation and running Selenium grid with hub and Chrome and Firefox nodes, using command line and Kitematic GUI to run parallel tests.
Configure selenium grid with docker compose by creating a yaml file to set up hub and browser nodes (chrome and firefox), map ports, and run tests across the grid.
Learn to use an XML parser to maintain object repositories by reading locators from XML and JSON files with a lightweight reader in a Maven project using Jackson and Dom4j.
Learn to parse json files to maintain selenium object repositories, define locators (home page, username, password) with XPath or css, and read them via a json reader using json path.
Create a dedicated test data project to manage bank manager and customer test suits with run modes. Read and manipulate Excel data using a utilities package and sheet-based test data.
Set up run modes at the suite and test-case levels using Excel sheets and run mode columns for bank manager and customer suits.
Enhance data-driven tests by parameterizing test data with a data provider and two-dimensional arrays, then map data to hash tables for flexible, sheet-based test inputs.
Optimize data provider code by centralizing data utilities (data util) and a static getData method, enabling multiple test suits and cases to share Excel-driven data at runtime.
Centralize and reuse data providers across multiple test suits by creating a dedicated data providers class that loads suite-specific excel files, such as bank manager and customer suits.
Develop a data driven framework with grid support and docker, enabling parallel execution across multiple nodes and browsers via a thread-local remote WebDriver in a reusable TestBase.
Demonstrates data-driven test creation for selenium web driver, using a data provider to run add customer tests in parallel on ten nodes across chrome and firefox via docker grid.
Integrate extent reports for parallel selenium tests across chrome and firefox, using a data-driven framework to generate timestamped html reports per browser.
Implement data-driven testing with extent reports for parallel Selenium WebDriver tests across Firefox and Chrome, using thread-local ExtentTest management to produce per-thread reports.
Implement data driven test steps for add customer and open account by reusing properties locators, reading data from excel, and executing tests in parallel across chrome and firefox with docker.
Configure Docker to run six parallel Selenium nodes (three Chrome, three Firefox), launch two VirtualBox virtual machines, and execute a six-node parallel test suite successfully.
Learn to capture screenshots on test failure in a data-driven, parallel selenium framework, log and attach them to extent reports, and map screenshots to the correct test threads.
Implement log forge in a data driven project by adding application and selenium logs, initializing per-thread logs, and capturing actions like clicking on elements across multiple browsers.
Gain practical skills in data-driven testing by implementing user-defined logs for parallel threads in Selenium WebDriver, including maintaining a global browser reference and generating per-thread log messages.
Explore data driven logging for parallel threads by splitting and replacing string values, extracting the current thread, and tagging logs with thread and browser identifiers.
Configure data driven tests with maven and Jenkins on Docker to run a final project, generate extent reports and html reports in the target folder, and archive screenshots and logs.
Discover the page object model design pattern built on data driven principles, separating test cases from business logic, and implementing page factories, Cucumber, and continuous integration with Jenkins and Maven.
Set up a maven project and apply a page object model to organize pages, tests, and resources, with a single page class implementing multiple methods.
This lecture demonstrates building business pages with the Page Object Model by passing a WebDriver through constructors and login and sign-up flows across Chrome and Firefox, including Zoho frame handling.
Implement the page object model by creating a base page and Zoho app page with a shared driver, enabling navigation to chat, CRM, and sales iq.
Learn page object model for CRM by building CRM home, accounts, and lead pages, with a shared top menu, common base page, and hash tables data-driven setup using Chrome options.
Apply the page object model in Selenium WebDriver by creating page classes and returning page objects to navigate between home, login, CRM, accounts, and create account pages using CSS selectors.
Explore building a page object model base class that centralizes logging, properties, config, excel data, and extent reports, and reuse utilities across pages for robust, data-driven test automation.
Implement a page object model base class and store login locators in properties files, read data from Excel for data-driven tests, and perform teardown.
Learn how to run page object model tests with maven and Jenkins, configure Surefire and test resources, and generate logs and extent reports across Chrome and Firefox.
Demonstrates implementing data-driven testing using Excel data and a data provider within a page object model, covering login and create account tests, run modes, and failure screenshots.
Master git and github basics, install git, create a github account, push your project to a remote repository, and trigger continuous integration.
Learn how git and GitHub power distributed version control, including local versus centralized systems, checkout and check-in workflows, and reliable backups to undo changes.
Install git on Windows using the setup wizard, choose git bash, explore git bash and git gui, and learn about repositories, commits, and the difference between local and remote pushes.
Learn how to set up git, initialize repositories, switch branches, track files, and commit changes using git config, add, commit, and ignore in a practical project.
Create and switch to a tester branch, commit updates, view logs, merge into the main branch, and delete branches, while preparing to handle emerging conflicts.
Create a tester branch, switch between main and tester, commit changes, and merge tester into main, resolve conflicts by selecting tester changes, and prepare for pushing to GitHub.
Push your local code to GitHub by creating a repository, setting a remote origin, and pushing on the main branch; learn to fetch, merge, and pull updates across branches.
Pull a project from a GitHub repository into a local folder. Copy the URL, pull project, and import it into your IDE to start Selenium, IBM, or API testing projects.
discover how continuous integration with Jenkins automatically builds and tests code on check-in, using Git and Maven, with plugins to catch issues early and publish reports.
Execute git bash workflows to initialize, commit, and push a page object model to GitHub, then configure Jenkins to trigger Maven builds from pom.xml for continuous integration.
Learn about page object model integration within continuous integration, by viewing test results, publishing extent reports via Jenkins, and committing changes with the Git plugin.
Explore how page factories extend the page object model using @FindBy annotations, initialize elements with PageFactory.initElements, and design a Maven-based architecture with reusable locators and navigation components.
Learn how to implement page factories with a base page class, initialize the WebDriver, and manage locators using a dedicated locators class and constants.
Learn to implement implicit waits with AjaxElementLocatorFactory in a page factory design to reliably locate runtime-loaded elements and build a flight booking workflow in Selenium WebDriver.
Implement page factories and business classes to handle dynamic flight search elements, using dynamic XPath for changing IDs and actions to simulate clicks and keystrokes.
Implement top navigation as a reusable page object across pages, using page object model and page factories to support sign in and create account flows with locators and driver handling.
Convert test cases to flight search test and sign in test with @Test; configure a runner, remove the custom listener, and implement page factory annotations with initialized elements.
Master page factory concepts to locate multiple elements with find by annotations, count tabs, and implement soft assertions using error collectors for resilient selenium tests.
Learn how to use page factories with FindBys and FindAll annotations to locate elements by css and id, including within blocks and handling dynamic runtime IDs.
Implement extent reports in a page factory framework by integrating custom listeners, capturing failure screenshots, and generating surefire html reports via Maven, with data providers and email notifications.
Add keywords in page factories and implement logs for clicks and typing using a wrapper, with Extent Reports to track Selenium WebDriver actions.
Implement data providers to read test data from excel file for sign in and flight search tests, including username, password, from city, to city, dates, adults, children, with run modes.
Configure Jenkins with the HTML publisher and extent report integration to build, archive screenshots, and automatically email test results after suite completion.
Explore cucumber basics in a behavior driven development framework and learn to integrate feature files, step definitions, cucumber options, and selenium with a page object model and page factories.
Discover Cucumber, the behavior driven development framework used with Selenium, featuring feature files and given-when-then steps to describe and verify user interactions such as login and simple addition.
Install the cucumber eclipse plugin, configure a maven cucumber project, and add cucumber java dependencies to create the first feature file and map steps to glue code.
Define and map cucumber step definitions in a new steps package, connect them to the login feature's glue code, and run with a runner file using cucumber options.
Create a cucumber runner file with a runner class, configure features and glue via cucumber options, run tests with ng test, and explore reporting with cucumber html and extent reports.
Learn to generate cucumber HTML reports in a Maven project by configuring the HTML reporting plugin, placing reports under target/cucumber-reports, and viewing feature, scenario, and step details.
Generate the latest extent reports for cucumber using the Grasshopper plugin, and verify compatibility with cucumber 7.x via maven, generating html reports automatically.
Learn to customize extent reports by setting a report title, applying a dark theme with a spark config xml file, and registering the configuration in the extend properties.
Add multiple scenarios to a feature file by duplicating steps and parameterizing with valid and invalid usernames and passwords, then map glue code and run reports.
Use scenario outline to parameterize login tests with multiple username and password combinations. Create examples with username and password columns, map them to steps, and view results in a table.
Learn to add multiple feature files and steps for Selenium WebDriver tests, including production login scenarios and CAPTCHA validation with parameterized outlines and reports.
Explore cucumber background to consolidate common steps across scenarios, such as logging in and validating homepage titles, and learn to run specific features to test valid and invalid user flows.
Tag features and scenarios in cucumber to run only staging or production tests, using a tag attribute in the runner and logical operators like or and not.
Explore cucumber hooks in BDD, using before and after annotations to manage browser setup and teardown around each scenario, with hooks co-located with step definitions.
Apply Cucumber hooks annotations such as before all, after all, before step, and after step to manage browser and database setup and teardown.
Define and control cucumber hooks' execution order with the order attribute, arranging before and after hooks in a sequence to run browsers and scenarios in the desired order.
Learn how Cucumber tagged hooks control test flow by staging and production tags, and implement before and after hooks to launch and close the browser with ordered priorities.
Explains data tables in Cucumber, showing how to read them as a list of strings or as a map, and how to extract first and last names across rows.
Explore reading a data table as a map, using a list of maps to access first name and last name by keys, demonstrating map retrieval and printing results.
Learn to parameterize a data table as a map in cucumber, using a for loop to read first and last names and repeat steps for multiple data sets.
Learn cucumber basics with version 7, creating feature files, step definitions, hooks, tagging, and data tables. Then design a Selenium page object framework with Maven, runner, and Extent reports.
Explore building a cucumber-selenium framework with page objects, keyword-driven actions, and data-driven tests to automate car search flows, with hooks, reporting, and GitHub integration.
Integrate cucumber with selenium in a simple Java project, add required jars, and implement a first feature to search BMW cars on a car guide site, validating results.
Create and run a Cucumber WebDriver feature to auto generate step definitions, using keywords for model, make, and location, then integrate Selenium and validate Cucumber and extent reports.
Implement cucumber hooks for setup and teardown with a firefox driver in an angular app. Then map steps to actions like mouse over and selecting make, model, location, and price.
Resolve cucumber webdriver sync issues in an angular app by applying explicit waits, focusing elements, and validating selections (BMW) with assertions.
capture a screenshot automatically on scenario failure and embed the png in the cucumber report, showing how an after hook attaches failures for missing elements and assertion errors.
Design a cucumber framework with the page object model and page factories in a maven project, mapping features, runners, and steps to page objects for Selenium tests.
Create end-to-end Cucumber features to automate car searches on the cars guide site, writing a feature file with tags and scenarios to validate the search cars page.
Create cucumber framework step definitions from the feature file and implement a selenium driver base class with singleton pattern, using cucumber plugin, enabling chrome or firefox, with timeouts and teardown.
Define page objects for the home and car search pages using page factory annotations, with link and dropdown locators, and implement actions via Selenium driver.
Create a car search page actions class using page factory and locators, implement dropdown selections for make, model, location, and price, and map them to Cucumber step definitions.
Create Cucumber step definitions to drive the search cars flow on the cars guide site, using data tables and page objects to select make, model, location, and price.
Create a Cucumber runner with hooks and options to run feature files. Configure Extent reports and Selenium Chrome driver to generate cucumber reports with screenshots on failure.
enhance cucumber framework tests by adding more steps and integrating maven, validating page titles with selenium and assertions, generating extent and cucumber reports, and preparing multiple feature files.
Explore how the Cucumber framework runs multiple features through Maven, as you add a used car search feature, parameterize steps, and manage page actions and step definitions.
Learn how to run multiple cucumber features with maven, manage tags, and organize page objects and locators for used car search versus search car pages.
Integrate cucumber tests with Jenkins to run maven builds, generate extent and cucumber reports, and view interactive cucumber reports directly in the Jenkins UI.
"This course requires you to download Docker Desktop from Docker official website. If you are a Udemy Business user, please check with your employer before downloading software."
The Only course to cover 9 Live projects on different frameworks designed from scratch
COURSE RECENTLY UPDATED WITH LATEST SELENIUM 4 and Extent Reports 5.x SERIES
The course is specially designed at architect level which will cover all major framework designing concept with implementation of majorly use Utilities.
As in most of the Selenium and Appium interviews majorly questions are asked from frameworks itself, this course specifically focuses on end to end framework designing on Live projects using all major techniques and live projects. After the course you should be capable enough to show 2-3+ years of your current experience in Selenium and can hit the market accordingly
Topics Highlight:
Projects build with in-depth implementation of following topics
Excel Reader
Logs
Mails
Zip
Listeners - Soft assertions, Test Failure
Jenkins
Maven
ReportNG
ExtentReports
Database
Properties
Runmodes
TestNG
ScreenshotUtils
Parallel Execution
Docker
Java Generics
MultiThreading
Page Object and Page Factory
7 Live Projects with Different Frameworks implemented on:
Data Driven Framework
Data Driven extended with Grid Implementation
Page Object Model
Page Object Model with Page Factory
Cucumber BDD with Page Object and Page Factories
Page Object Model and Page Factory extended with Java Generics and MultiThreading (Parallel Execution)
Cucumber BDD with Page Objects and Page Factories with Parallel Execution
End to End Data + Keyword Driven Framework (Live Batch recordings)
End to End Page Object Model with Page Factories (Live Batch recordings)
Once again to join this course you should have basic understanding of Core Java and WebDriver.
Happy Learning !!!