
Create a new Maven project in IntelliJ, name it Todo card dash project, select Java and Maven, ensure Java 17 is set, and review the pom.xml and source folders.
Build a user model (pojo) to manage test data with faker generating first name, last name, email, and password, and use its constructor and getters in tests.
Define register page elements using the page object design pattern, locating first name, last name, email, password, confirm password, and submit button by css selectors and data test ids.
Develop a cleaner selenium test for the todo page by turning the welcome message check into a boolean method on the todo page, using the test driver.
Refactor the test framework to implement a reusable plus button click on the todo page, using a new page method and driver passed from tests to add and manage todos.
Implement a new Todo page as a singleton with a private constructor and a public getInstance method, ensuring stateless pages and driver-specific steps in Selenium tests.
Learn to run Selenium tests on multiple browsers by passing a browser parameter via mvn, reading it with system.getProperty, defaulting to chrome, and switching the driver.
Make the read prop method dynamic by reading env from the terminal with system.getProperty, default to production, switch between production and local, and support multiple browsers and environments.
Replace UI steps with API steps to register users, speeding tests and reducing flakiness in automated Selenium CI/CD workflows.
Hit the register api using rest assured with given, when, then; configure base uri, headers, and payload, post to api version one users register, and print the response.
Read the base url from the config utilities and convert it to a string, then prepare to extract the access token, user id, and first name.
Extract response body values by saving the response to a variable, then use json path to retrieve items like the access token and first name, printing them for verification.
Create a reusable register API method using Rest Assured that returns the response, enabling reuse across classes via a singleton user API.
Use selenium to inject cookies on the register page by adding user id and first name cookies, then reload to land on the Todo page.
Register via API to obtain an access token, store it in the user object with getters and setters, and use the token to authenticate add todo calls in the API.
Implement add todo using the API by sending user and item to the Todo API, replacing the UI flow, and validate required attributes and token handling for API tests.
Enable parallel test execution in a Selenium framework by configuring the Maven Surefire plugin for TestNG in the pom.xml, so mvn clean test runs three browsers concurrently.
Parallel execution reveals the base test issue: shared driver instances are overwritten across threads; implement a driver per thread and manual management.
Configure allure reporting for Java tests by updating pom.xml with aspectj, adding allure testing dependency, and enabling the surefire plugin to generate allure results and html reports.
Run Selenium tests in the cloud with GitHub Actions by executing Chrome in headless mode using Chrome options, triggering builds, and accessing the report.
Configure and deploy allure reports to GitHub pages using actions, secrets, and tokens; run parallel Selenium tests with Maven, publish results, and share the report URL.
Welcome to "Mastering Selenium: Building a Robust Framework for Real Websites with Best Practices, Reporting, Parallel Execution, Multi-Browser, and Environment Support"!
Are you ready to take your Selenium skills to the next level and build a complete automation framework for real-world websites? Look no further! This comprehensive Udemy course is designed to equip you with all the necessary knowledge and skills to create a robust Selenium framework that follows industry best practices.
In this course, we'll dive deep into the world of Selenium automation and cover everything you need to know to develop a top-notch framework. Whether you're a beginner or an experienced Selenium user, this course will provide you with the expertise to tackle complex automation projects with confidence.
Throughout the course, we'll guide you through each step of the framework development process. You'll learn how to set up your project structure, implement the Stateless Page Object Model (POM) design pattern, and leverage the power of best practices to write maintainable and scalable automation scripts.
But that's not all! We understand the importance of reporting and parallel execution in automation projects. You'll discover how to integrate comprehensive reporting mechanisms into your framework, allowing you to analyze test results and generate detailed reports. Additionally, we'll explore parallel execution techniques, enabling you to execute tests concurrently, saving time and boosting efficiency.
Furthermore, we'll delve into the world of multi-browser and multi-environment support. You'll learn how to configure your framework to run tests across various browsers such as Chrome, Firefox, and Safari, ensuring compatibility with different user environments. We'll also cover environment-specific configurations, allowing you to seamlessly switch between test environments, such as development, staging, and production.
By the end of this course, you'll have a fully functional Selenium automation framework that incorporates best practices, comprehensive reporting, parallel execution, and multi-browser and multi-environment support. You'll be equipped with the skills to confidently automate tests for any real website and handle the complexities that come with it.
So, what are you waiting for? Join us on this exciting journey to master Selenium and build a powerful automation framework. Enroll now and take your Selenium automation skills to new heights!