{"id":22589128,"url":"https://github.com/rajatt95/tutorial_yt_rajat_designpattern_pom_selenium_java","last_synced_at":"2025-03-28T17:45:12.130Z","repository":{"id":207632816,"uuid":"672543943","full_name":"rajatt95/Tutorial_YT_Rajat_DesignPattern_POM_Selenium_Java","owner":"rajatt95","description":"This repository contains a Tutorial for Page Object Model (POM) design pattern implementation using Selenium WebDriver and Java for automated testing of applications.","archived":false,"fork":false,"pushed_at":"2023-11-26T18:41:59.000Z","size":37,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-02T18:33:21.045Z","etag":null,"topics":["abstraction","builder-pattern","design-patterns","encapsulation","fluent-interface","inheritance","intellij-idea","java","oops-in-java","page-factory","page-object-model","polymorphism","selenium-webdriver","testng","webdrivermanager"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/watch?v=xVlSLhB3VcA\u0026list=PLrBBHmoBFxBWV26aLM7VHcpljfJLHd6eQ\u0026ab_channel=SoftwareTesting-RajatVerma","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rajatt95.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-30T12:54:09.000Z","updated_at":"2023-12-15T18:23:29.000Z","dependencies_parsed_at":"2023-11-26T19:50:35.713Z","dependency_job_id":null,"html_url":"https://github.com/rajatt95/Tutorial_YT_Rajat_DesignPattern_POM_Selenium_Java","commit_stats":null,"previous_names":["rajatt95/tutorial_yt_rajat_designpattern_pom_selenium_java"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTutorial_YT_Rajat_DesignPattern_POM_Selenium_Java","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTutorial_YT_Rajat_DesignPattern_POM_Selenium_Java/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTutorial_YT_Rajat_DesignPattern_POM_Selenium_Java/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTutorial_YT_Rajat_DesignPattern_POM_Selenium_Java/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajatt95","download_url":"https://codeload.github.com/rajatt95/Tutorial_YT_Rajat_DesignPattern_POM_Selenium_Java/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246073968,"owners_count":20719580,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["abstraction","builder-pattern","design-patterns","encapsulation","fluent-interface","inheritance","intellij-idea","java","oops-in-java","page-factory","page-object-model","polymorphism","selenium-webdriver","testng","webdrivermanager"],"created_at":"2024-12-08T08:12:22.306Z","updated_at":"2025-03-28T17:45:12.100Z","avatar_url":"https://github.com/rajatt95.png","language":"Java","readme":"\u003c!--\n    #/**\n    # * @author Rajat Verma\n    # * Email: rajatvermaa95@gmail.com\n    # * GitHub Profile: https://github.com/rajatt95\n    # * GitHub Page: https://rajatt95.github.io/\n    # * LinkedIn: https://www.linkedin.com/in/rajatt95/\n    # * Topmate: https://topmate.io/rajatt95\n    # * Telegram: https://t.me/rajatt95\n    # * Instagram: https://www.instagram.com/rajattvermaa95/\n    # * YouTube: https://www.youtube.com/@rajatt95\n    # * WhatsApp Community: https://chat.whatsapp.com/DVRP0ViD0YwELUKF2XMJHy\n    # * WhatsApp Channel: https://whatsapp.com/channel/0029Va9XXMhJ93waOU5Xer3r\n    # */\n    #/***************************************************/\n--\u003e\n---\n# 💻 Tutorial | Page Object Model (POM)\n\n[![Selenium](https://img.shields.io/badge/Selenium-43B02A?style=for-the-badge\u0026logo=selenium\u0026logoColor=white)](https://www.selenium.dev/)\n[![Java](https://img.shields.io/badge/Java-007396?style=for-the-badge\u0026logo=java\u0026logoColor=white)](https://www.java.com/)\n\n[![IntelliJ IDEA](https://img.shields.io/badge/IntelliJ_IDEA-000000?style=for-the-badge\u0026logo=intellij-idea\u0026logoColor=white)](https://www.jetbrains.com/idea/)\n[![Maven](https://img.shields.io/badge/Maven-C71A36?style=for-the-badge\u0026logo=apache-maven\u0026logoColor=white)](https://maven.apache.org/)\n[![TestNG](https://img.shields.io/badge/TestNG-1E5799?style=for-the-badge\u0026logo=testng\u0026logoColor=white)](https://testng.org/doc/)\n[![Page Object Model](https://img.shields.io/badge/Page_Object_Model-4285F4?style=for-the-badge\u0026logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAA5klEQVR42mJ8/vz8PwMxgAO4BMZcA5xggnIKCAkw4IACZpMHwBwD6EIAOMmQFQBzF8HlACMwMFAHMRgD8GVMH8CZAAAAAElFTkSuQmCC)](https://en.wikipedia.org/wiki/Page_Object_Model)\n\n## 📑 Table of Contents\n\n- [Introduction](#introduction)\n- [Video Tutorial](#video-tutorial)\n- [Prerequisites](#prerequisites)\n- [Getting Started](#getting-started)\n- [Running Tests](#running-tests)\n- [Project Structure](#project-structure)\n- [Configuration](#configuration)\n- [Other Projects](#other-projects)\n- [Technical Documents](#technical-documents)\n- [Contacts](#contacts)\n\n## 📖 Introduction\nThis repository contains a Tutorial for Page Object Model (POM) design pattern implementation using Selenium WebDriver and Java for automated testing of applications.\n\n## 🎥 Video Tutorial\n\n\u003ca href=\"https://www.youtube.com/watch?v=xVlSLhB3VcA\u0026list=PLrBBHmoBFxBWV26aLM7VHcpljfJLHd6eQ\"\u003e \u003cimg src=\"https://img.youtube.com/vi/_NoOYqg8pJ4/0.jpg\" alt=\"Tutorial | POM | Selenium WebDriver + Java\" width=\"200\"\u003e \u003c/a\u003e\n\nClick on the image above to watch the tutorial.\n\n## 🛠️ Prerequisites\n\n- [![Java JDK](https://img.shields.io/badge/Java_JDK-007396?style=for-the-badge\u0026logo=java\u0026logoColor=white)](https://www.oracle.com/java/technologies/javase-downloads.html) (v11 or higher recommended)\n- [![Maven](https://img.shields.io/badge/Maven-C71A36?style=for-the-badge\u0026logo=apache-maven\u0026logoColor=white)](https://maven.apache.org/) (v3.8.7 or higher recommended)\n\n## ▶️ Getting Started\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/rajatt95/Tutorial_YT_Rajat_DesignPattern_POM_Selenium_Java\n   ```\n\n2. Navigate to the project directory:\n   ```bash\n   cd Tutorial_YT_Rajat_DesignPattern_POM_Selenium_Java\n   ```\n\n3. Install dependencies:\n   ```bash\n   mvn clean install\n   ```\n\n## 🚀 Running Tests\n\nYou can execute the tests using the test runner class located in `src/test/java`:\n\n- **Run All Tests**: Execute the testng.xml file to run all the tests.\n\n- **Run Specific Test**: The test runner class allows you to run specific test methods if needed.\n\n- Execute tests using Maven:\n\n  ```bash\n  mvn clean test\n  ``` \n\n## 📁 Project Structure\n\nThe tests follow a modular and maintainable structure:\n\n```\n|-- src\n|     |-- main\n|          |-- java\n|              |-- tutorial.POM.pages\n|                  |-- _02_Without_PageFactories\n|                      |-- HomePage\n|                      |-- LoginPage\n|                  |-- _03_With_PageFactories\n|                      |-- HomePage\n|                      |-- LoginPage\n|                  |-- _04_BuilderPattern\n|                     |-- HomePage\n|                      |-- LoginPage\n|                 |-- _05_FluentInterface\n|                      |-- HomePage\n|                      |-- LoginPage\n|                 |-- _06_HandleComponents\n|                      |-- components\n|                          |-- AppHeader\n|                      |-- HomePage\n|                      |-- LoginPage\n|     |-- test\n|          |-- java\n|              |-- tutorial.POM\n|                  |-- base\n|                    |-- BaseTest\n|                  |-- tests\n|                      |-- Test_02_Login_POM_Without_PageFactories\n|                      |-- Test_03_Login_POM_With_PageFactories\n|                      |-- Test_04_Login_POM_BuilderPattern\n|                      |-- Test_05_Login_POM_FluentInterface\n|                      |-- Test_06_Login_POM_Components\n|-- testng.xml\n```\n\n- `src/main/java/tutorial.POM.pages`: Contains the Page Object Model (POM) classes representing web pages and their elements.\n- `src/test/java/tutorial.POM.base`: Contains the Base for every test (setup and tearDown methods).\n- `src/test/java/tutorial.POM.tests`: Contains the actual test files. You can organize your tests into subdirectories as needed.\n- `testng.xml`: Tests execution configuration file \n\n## ⚙️ Configuration\n\n- Modify `testng.xml` for Tests execution configuration settings.\n- Customize `BaseTest` for setup and tearDown methods (Change browser for tests execution).\n\n## 🔭 Other Projects\n\n- [![Java](https://img.shields.io/badge/Java-007396?style=for-the-badge\u0026logo=java\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/programming-language-java)  -\n  [![Selenium](https://img.shields.io/badge/Selenium-43B02A?style=for-the-badge\u0026logo=selenium\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/selenium-automation-frameworks)\n  [![Appium](https://img.shields.io/badge/Appium-40C4FF?style=for-the-badge\u0026logo=appium\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/appium-automation-frameworks)\n  [![Rest Assured](https://img.shields.io/badge/Rest%20Assured-5B47A5?style=for-the-badge\u0026logo=rest-assured\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/restassured-automation-framework)\n\n- [![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge\u0026logo=javascript\u0026logoColor=black)](https://github.com/stars/rajatt95/lists/programming-language-javascript) -\n  [![Cypress](https://img.shields.io/badge/Cypress-17202C?style=for-the-badge\u0026logo=cypress\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/cypress-automation-frameworks)\n  [![Playwright](https://img.shields.io/badge/Playwright-34495E?style=for-the-badge\u0026logo=playwright\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/playwright-automation-frameworks)\n\n- [![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge\u0026logo=python\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/programming-language-python) -\n  [![Requests](https://img.shields.io/badge/Requests-2CA5E0?style=for-the-badge\u0026logo=python\u0026logoColor=white)](https://github.com/stars/rajatt95/lists/requests-automation-framework)\n\n## 📄 Technical Documents\n- [![Google Drive](https://img.shields.io/badge/Google%20Drive-4285F4?style=for-the-badge\u0026logo=google-drive\u0026logoColor=white)](https://drive.google.com/drive/folders/1tne9pZjgWvfrS0l9tVHs6k1jnQHpTLoA?usp=sharing)\n- [![GitHub Repository](https://img.shields.io/badge/GitHub-100000?style=for-the-badge\u0026logo=github\u0026logoColor=white)](https://github.com/rajatt95/Documents)\n\n## 📧 Contacts\n\n- [![Email](https://img.shields.io/badge/Email-rajatvermaa95%40gmail.com-green)](mailto:rajatvermaa95@gmail.com)\n- [![GitHub Profile](https://img.shields.io/badge/GitHub-Profile-blue)](https://github.com/rajatt95)\n- [![GitHub Page](https://img.shields.io/badge/GitHub-Page-lightgrey)](https://rajatt95.github.io/)\n- [![LinkedIn](https://img.shields.io/badge/LinkedIn-Profile-blue)](https://www.linkedin.com/in/rajatt95)\n- [![Topmate](https://img.shields.io/badge/Topmate-Profile-red)](https://topmate.io/rajatt95)\n- [![Telegram](https://img.shields.io/badge/Telegram-Channel-blue)](https://t.me/rajatt95)\n- [![Instagram](https://img.shields.io/badge/Instagram-Profile-orange)](https://www.instagram.com/rajattvermaa95/)\n- [![YouTube](https://img.shields.io/badge/YouTube-Channel-red)](https://www.youtube.com/@rajatt95)\n- [![WhatsApp Community](https://img.shields.io/badge/WhatsApp-Community-brightgreen)](https://chat.whatsapp.com/LP20xMGvxnEL88GoB58bo1)\n- [![WhatsApp Channel](https://img.shields.io/badge/WhatsApp-Channel-brightgreen)](https://whatsapp.com/channel/0029Va9XXMhJ93waOU5Xer3r)\n\nFeel free to reach out if you have any questions, or suggestions, or just want to chat!\n\nThanks for visiting my GitHub profile! 😊\n\n\u003cp align=\"left\"\u003e \u003cimg src=\"https://komarev.com/ghpvc/?username=rajatt95\u0026label=Profile%20views\u0026color=0e75b6\u0026style=flat\" alt=\"rajatt95\" /\u003e \u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatt95%2Ftutorial_yt_rajat_designpattern_pom_selenium_java","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajatt95%2Ftutorial_yt_rajat_designpattern_pom_selenium_java","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatt95%2Ftutorial_yt_rajat_designpattern_pom_selenium_java/lists"}