{"id":28187445,"url":"https://github.com/rajatt95/testautomationframework_yt_rajat_web_playwright_ts","last_synced_at":"2025-05-16T08:09:54.283Z","repository":{"id":293291644,"uuid":"973303673","full_name":"rajatt95/TestAutomationFramework_YT_Rajat_Web_Playwright_TS","owner":"rajatt95","description":"This repository contains a Test Automation Framework built using Playwright and Typescript for automated testing of web applications.","archived":false,"fork":false,"pushed_at":"2025-05-14T15:23:03.000Z","size":51,"stargazers_count":11,"open_issues_count":0,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-14T16:36:46.256Z","etag":null,"topics":["chromium","custom-utilities","github-actions","nodejs","page-object-model","parallel-cross-browser-testing","playwright","playwright-html-report","retries","screenshot","test-automation","traces","typescript","vscode"],"latest_commit_sha":null,"homepage":"https://www.youtube.com/@rajatt95","language":"TypeScript","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,"zenodo":null}},"created_at":"2025-04-26T17:43:31.000Z","updated_at":"2025-05-14T15:23:07.000Z","dependencies_parsed_at":"2025-05-14T16:36:54.645Z","dependency_job_id":"56a1caa4-3172-4c4f-a040-7db6658b93df","html_url":"https://github.com/rajatt95/TestAutomationFramework_YT_Rajat_Web_Playwright_TS","commit_stats":null,"previous_names":["rajatt95/testautomationframework_yt_rajat_web_playwright_ts"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTestAutomationFramework_YT_Rajat_Web_Playwright_TS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTestAutomationFramework_YT_Rajat_Web_Playwright_TS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTestAutomationFramework_YT_Rajat_Web_Playwright_TS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rajatt95%2FTestAutomationFramework_YT_Rajat_Web_Playwright_TS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rajatt95","download_url":"https://codeload.github.com/rajatt95/TestAutomationFramework_YT_Rajat_Web_Playwright_TS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493368,"owners_count":22080127,"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":["chromium","custom-utilities","github-actions","nodejs","page-object-model","parallel-cross-browser-testing","playwright","playwright-html-report","retries","screenshot","test-automation","traces","typescript","vscode"],"created_at":"2025-05-16T08:09:48.718Z","updated_at":"2025-05-16T08:09:54.277Z","avatar_url":"https://github.com/rajatt95.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"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# 💻 Test Automation Framework | WEB \n\n[![Playwright](https://img.shields.io/badge/Playwright-34495E?style=for-the-badge\u0026logo=playwright\u0026logoColor=white)](https://playwright.dev/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white)](https://www.typescriptlang.org/)\n \n\n[![VS Code](https://img.shields.io/badge/VS_Code-007ACC?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)](https://code.visualstudio.com/)\n[![Playwright HTML Reporter](https://img.shields.io/badge/Playwright%20HTML%20Reporter-\u003cCOLOR\u003e?style=for-the-badge\u0026logo=playwright\u0026logoColor=white)](https://www.npmjs.com/package/playwright-html-reporter)\n[![GitHub Actions](https://img.shields.io/badge/GitHub%20Actions-2088FF?style=for-the-badge\u0026logo=github-actions\u0026logoColor=white)](https://github.com/features/actions) \n\n## 📑 Table of Contents\n\u003c!-- # - [Video Tutorial](#video-tutorial) --\u003e\n- [Introduction](#introduction)\n- [Prerequisites](#prerequisites)\n- [Getting Started](#getting-started)\n- [Running Tests](#running-tests)\n- [Project Structure](#project-structure)\n- [Configuration](#configuration)\n- [Continuous Integration](#continuous-integration)\n- [Reporting](#reporting)\n- [Other Projects](#other-projects)\n- [Technical Documents](#technical-documents)\n- [Contacts](#contacts)\n\n## 📖 Introduction\nThis repository contains a **Test Automation Framework** built with **Playwright** and **TypeScript** for testing **web applications**.\n\n\n\u003c!-- ## 🎥 Video Tutorial\n\n\u003ca href=\"https://www.youtube.com/watch?v=g0nG6aPbpl4\u0026list=PLrBBHmoBFxBUu9G7haETpa0B03H9GnfKX\"\u003e \u003cimg src=\"https://img.youtube.com/vi/g0nG6aPbpl4/0.jpg\" alt=\"Test Automation Framework | WEB | Cypress + JS\" width=\"200\"\u003e \u003c/a\u003e\n\nClick on the image above to watch the tutorials. --\u003e\n\n## 🛠️ Prerequisites\n\n- [![Node.js](https://img.shields.io/badge/Node.js-43853D?style=for-the-badge\u0026logo=node.js\u0026logoColor=white)](https://nodejs.org/) (v18.16.1 or higher recommended)\n- [![npm](https://img.shields.io/badge/npm-CB3837?style=for-the-badge\u0026logo=npm\u0026logoColor=white)](https://www.npmjs.com/) (v9.5.1 or higher recommended)\n\n## ▶️ Getting Started\n\n1. **Clone the repository:**\n\n   ```bash\n   git clone https://github.com/rajatt95/TestAutomationFramework_YT_Rajat_Web_Playwright_TS.git\n   ```\n\n2. **Navigate to the project directory:**\n\n   ```bash\n   cd TestAutomationFramework_YT_Rajat_Web_Playwright_TS\n   ```\n\n3. **Install dependencies:**\n\n   ```bash\n   npm install\n   ```\n\n## 🚀 Running Tests\n\n- **Playwright UI mode:**\n\n  ```bash\n  npm run tests:ui-mode\n  ```\n- **Playwright Debug mode:**\n\n  ```bash\n  npm run tests:debug\n  ```\n- **Playwright Codegen:**\n\n  ```bash\n  npm run playwright:codegen\n  ```\n\n- **Execution in different browsers:**\n\n  - [![Chrome](https://img.shields.io/badge/Chrome-4285F4?style=for-the-badge\u0026logo=google-chrome\u0026logoColor=white)](https://www.google.com/chrome/)\n[![Edge](https://img.shields.io/badge/Edge-0078D7?style=for-the-badge\u0026logo=microsoft-edge\u0026logoColor=white)](https://www.microsoft.com/edge/)[![Firefox](https://img.shields.io/badge/Firefox-FF7139?style=for-the-badge\u0026logo=firefox\u0026logoColor=white)](https://www.mozilla.org/firefox/)\n[![WebKit](https://img.shields.io/badge/WebKit-689F63?style=for-the-badge\u0026logo=webkit\u0026logoColor=white)](https://webkit.org/)\n[![Chromium](https://img.shields.io/badge/Chromium-4A90E2?style=for-the-badge\u0026logo=chromium\u0026logoColor=white)](https://www.chromium.org/Home)\n\n\n  ```bash\n  npm run tests:CHROME\n  ```\n  ```bash\n  npm run tests:EDGE\n  ```\n  ```bash\n  npm run tests:FIREFOX\n  ```\n  ```bash\n  npm run tests:WEBKIT\n  ```\n  ```bash\n  npm run tests:CHROMIUM\n  ```\n\n- Execution in Headless mode:\n  ```bash\n  npm run tests:CHROME:HEADLESS\n  ```\n\n## 📁 Project Structure\n\nThe tests follow a modular and maintainable structure:\n\n```\n|-- .github\n|     |-- workflows\n|          |-- 01_ui_tests_chrome.yml\n|          |-- 02_ui_tests_select_one.yml\n|          |-- 03_ui_tests_ALL.yml\n|-- pages\n|     |-- BasePage.ts\n|     |-- CartPage.ts\n|     |-- Components.ts\n|     |-- LoginPage.ts\n|     |-- ProductsPage.ts\n|-- test-data\n|     |-- login_credentials.json\n|-- tests-saucedemo\n|     |-- components.spec.ts\n|     |-- login.spec.ts\n|-- utils\n|     |-- VerificationUtils.ts\n|     |-- WaitUtils.ts\n|-- .gitignore\n|-- package.json\n|-- playwright.config.ts\n```\n\n- `pages`: Contains the Page Object Model (POM) classes representing web pages and their elements.\n- `playwright-report`: Contains the HTML report for tests (Logs, Screenshots, Traces and Videos are attached).\n- `test-data`: Contains external files (example: login credentials data) that can be used to mock data during tests.\n- `tests-saucedemo`: Contains the actual test files. You can organize your tests into subdirectories as needed. \n- `utils`: Contains the Utilities that provides methods for asserting different conditions on web elements, waits.\n\n## ⚙️ Configuration\n\n- Modify `playwright.config.ts` for playwright configuration settings such as\n  - `baseURL`\n  - `testDir`\n  - `reporter`\n  - `fullyParallel`\n  - `video`\n  - `screenshot`\n  - `trace`\n\n## 🔄 Continuous Integration\n\nThis project is configured for CI using Github Actions. Check the configurations in `.github/workflows/*.yml`.\n\n- `01_ui_tests_chrome.yml`: This workflow executes tests in Chrome browser.\n\n- `02_ui_tests_select_one.yml`: This workflow will first ask User to select the browser for tests execution.\n\n- `03_ui_tests_ALL.yml`: This workflow executes the tests in all browsers \u003c!-- #(CHROME, EDGE, WEBKIT, CHROMIUM, FIREFOX) --\u003e\n\n  [![Chrome](https://img.shields.io/badge/Chrome-4285F4?style=for-the-badge\u0026logo=google-chrome\u0026logoColor=white)](https://www.google.com/chrome/)\n  [![Edge](https://img.shields.io/badge/Edge-0078D7?style=for-the-badge\u0026logo=microsoft-edge\u0026logoColor=white)](https://www.microsoft.com/edge/)[![Firefox](https://img.shields.io/badge/Firefox-FF7139?style=for-the-badge\u0026logo=firefox\u0026logoColor=white)](https://www.mozilla.org/firefox/)\n  [![WebKit](https://img.shields.io/badge/WebKit-689F63?style=for-the-badge\u0026logo=webkit\u0026logoColor=white)](https://webkit.org/)\n  [![Chromium](https://img.shields.io/badge/Chromium-4A90E2?style=for-the-badge\u0026logo=chromium\u0026logoColor=white)](https://www.chromium.org/Home)\n\n## 📊 Reporting\n\nPlaywright HTML report (Logs, Screenshots, Traces and Videos are attached) is stored in the `playwright-report` directory.\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\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatt95%2Ftestautomationframework_yt_rajat_web_playwright_ts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frajatt95%2Ftestautomationframework_yt_rajat_web_playwright_ts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frajatt95%2Ftestautomationframework_yt_rajat_web_playwright_ts/lists"}