{"id":28470778,"url":"https://github.com/kartik8dwivedi/seleniumtesting-automated-web-form-testing","last_synced_at":"2026-05-07T03:38:13.281Z","repository":{"id":296597257,"uuid":"993906623","full_name":"Kartik8Dwivedi/SeleniumTesting-Automated-Web-Form-Testing","owner":"Kartik8Dwivedi","description":"Automated test suite using C#, Selenium WebDriver, and NUnit to validate user interactions (text fields, radio buttons, dropdowns, date input, and file uploads) on a sample web form. Built for learning, reliability, and extendability.","archived":false,"fork":false,"pushed_at":"2025-06-09T22:34:52.000Z","size":287,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-09T23:29:19.864Z","etag":null,"topics":["automation","chrome","chromedriver","csharp","dotnet","nunit","qa","qa-automation","selenium","selenium-csharp","testing","webdriver"],"latest_commit_sha":null,"homepage":"","language":"C#","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/Kartik8Dwivedi.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-05-31T19:23:51.000Z","updated_at":"2025-06-09T22:34:57.000Z","dependencies_parsed_at":"2025-06-01T07:39:07.606Z","dependency_job_id":"a6589f6b-1ed3-4d63-9a7a-fbdbcc12ab5a","html_url":"https://github.com/Kartik8Dwivedi/SeleniumTesting-Automated-Web-Form-Testing","commit_stats":null,"previous_names":["kartik8dwivedi/seleniumtesting-automated-web-form-testing"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Kartik8Dwivedi/SeleniumTesting-Automated-Web-Form-Testing","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kartik8Dwivedi%2FSeleniumTesting-Automated-Web-Form-Testing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kartik8Dwivedi%2FSeleniumTesting-Automated-Web-Form-Testing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kartik8Dwivedi%2FSeleniumTesting-Automated-Web-Form-Testing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kartik8Dwivedi%2FSeleniumTesting-Automated-Web-Form-Testing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kartik8Dwivedi","download_url":"https://codeload.github.com/Kartik8Dwivedi/SeleniumTesting-Automated-Web-Form-Testing/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kartik8Dwivedi%2FSeleniumTesting-Automated-Web-Form-Testing/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263033176,"owners_count":23403111,"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":["automation","chrome","chromedriver","csharp","dotnet","nunit","qa","qa-automation","selenium","selenium-csharp","testing","webdriver"],"created_at":"2025-06-07T10:06:21.179Z","updated_at":"2026-05-07T03:38:13.253Z","avatar_url":"https://github.com/Kartik8Dwivedi.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automated Web Form Testing\n\n\nThis repository contains an automated Selenium test suite built with C# and NUnit, designed to test a web form hosted at [Link](http://app.cloudqa.io/home/AutomationPracticeForm).\n\n## Features\n\n- Tests text input fields with resilient assertions.\n- Selects gender radio button.\n- Selects state from dropdown.\n- Inputs date of birth.\n- Uploads a file (Resume.pdf) using Selenium's file upload functionality.\n- Uses headless ChromeDriver for running tests.\n\n## Project Structure\n\n    Root_Directory/\n    ├── DummyFiles/\n    │   └── Resume.pdf # Sample file for upload testing\n    ├── Public/\n    │   └── test_run_screenshot.png\n    ├── FormTests.cs\n    ├── SeleniumTest.csproj\n    ├── SeleniumTest.sln\n    ├── setup_chromedriver.sh\n    ├── .gitignore\n    └── README.md\n\n\n\n## Prerequisites\n\n- [.NET 9 SDK](https://dotnet.microsoft.com/download/dotnet/9.0)\n- [Google Chrome](https://www.google.com/chrome/)\n- ChromeDriver matching your Chrome version\n\n## Setup\n\n1. Clone the repo:\n   ```bash\n   git clone https://github.com/Kartik8Dwivedi/SeleniumTesting-Automated-Web-Form-Testing.git\n   cd SeleniumTesting-Automated-Web-Form-Testing\n    ```\n\n2. Make the ChromeDriver executable by running:\n   ```bash\n   chmod +x setup_chromedriver.sh\n   ./setup_chromedriver.sh\n   ```\n\n3. Restore dependencies and build the project:\n   ```bash\n   dotnet restore\n   dotnet build\n   ```\n\n4. Run the tests:\n   ```bash\n   dotnet test\n   # for more detailed logs use:\n   # dotnet test --logger:\"console;verbosity=detailed\" \n   ```\n## Running Tests\nTo run the tests, ensure you have the ChromeDriver set up and then execute the following command in your terminal:\n\n```bash\ndotnet test\n```\n## Notes   \n- Ensure that the `DummyFiles/Resume.pdf` file exists in the specified directory.\n- The file DummyFiles/Resume.pdf is copied automatically to the build output directory and used for the file upload test.\n- The project uses implicit and explicit waits for element resilience.\n- The tests are designed to run in headless mode, which means they won't open a browser window. If you want to see the browser actions, you can modify the `SeleniumTest.cs` file to remove the headless option.\n- The tests are resilient to minor changes in the form, such as field order or additional fields, as long as the essential fields remain present.\n- `setup_chromedriver.sh` grants execution permission to the chromedriver binary if included in the repo.\n\n## Test Run Output\n\nBelow is a screenshot of the console output after running the tests successfully:\n\n![Test Run Screenshot](public/media1.png)\n\n### Detailed Logs\n\nWhen you run the tests, you will see detailed logs in the console output similar to the following:\n\n```plaintext\n    ╭─wafers@wafer in ~/Desktop/dev/c#/task/SeleniumTest via .NET v9.0.105 🎯 net9.0 took 7s\n    ╰─λ dotnet test --logger:\"console;verbosity=detailed\"\n    Restore complete (0.5s)\n    SeleniumTest succeeded (0.2s) → bin/Debug/net9.0/SeleniumTest.dll\n    A total of 1 test files matched the specified pattern.\n    /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/SeleniumTest.dll\n    NUnit Adapter 4.5.0.0: Test execution started\n    NUnit Adapter 4.5.0.0: Test execution started\n    Running all tests in /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/SeleniumTest.dll\n    Running all tests in /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/SeleniumTest.dll\n    NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run\n    NUnit3TestExecutor discovered 1 of 1 NUnit test cases using Current Discovery mode, Non-Explicit run\n    Starting ChromeDriver 137.0.7151.55 (254bc711794d7ad269495f3d419a209935b78cad-refs/branch-heads/7151@{#1757}) on port 32999\n    Starting ChromeDriver 137.0.7151.55 (254bc711794d7ad269495f3d419a209935b78cad-refs/branch-heads/7151@{#1757}) on port 32999\n    Only local connections are allowed.\n    Only local connections are allowed.\n    Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.\n    Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.\n    ChromeDriver was started successfully on port 32999.\n    ChromeDriver was started successfully on port 32999.\n    Testing text fields...\n    First Name field passed with value: Kartik\n    Last Name field passed with value: Dwivedi\n    Email field passed with value: kartikdwivedi2626@gmail.com\n    Testing gender radio button...\n    Radio button 'Male' selected successfully.\n    Testing state dropdown...\n    State dropdown selected option: India\n    Testing Date of Birth input...\n    Date of Birth field set to: 2002-05-26\n    Using file path: /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/DummyFiles/Resume.pdf\n    Testing file upload...\n    File uploaded successfully: /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/DummyFiles/Resume.pdf\n\n    NUnit Adapter 4.5.0.0: Test execution complete\n    NUnit Adapter 4.5.0.0: Test execution complete\n    Passed TestFormFieldsResiliently [5 s]\n    Standard Output Messages:\n    Testing text fields...\n    First Name field passed with value: Kartik\n    Last Name field passed with value: Dwivedi\n    Email field passed with value: kartikdwivedi2626@gmail.com\n    Testing gender radio button...\n    Radio button 'Male' selected successfully.\n    Testing state dropdown...\n    State dropdown selected option: India\n    Testing Date of Birth input...\n    Date of Birth field set to: 2002-05-26\n    Using file path: /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/DummyFiles/Resume.pdf\n    Testing file upload...\n    File uploaded successfully: /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/DummyFiles/Resume.pdf\n\n\n\n    Test Run Successful.\n    Total tests: 1\n        Passed: 1\n    Total time: 5.9000 Seconds\n    SeleniumTest test succeeded with 1 warning(s) (6.1s)\n        /usr/share/dotnet/sdk/9.0.105/Microsoft.TestPlatform.targets(48,5): warning : \n        Testing text fields...\n        First Name field passed with value: Kartik\n        Last Name field passed with value: Dwivedi\n        Email field passed with value: kartikdwivedi2626@gmail.com\n        Testing gender radio button...\n        Radio button 'Male' selected successfully.\n        Testing state dropdown...\n        State dropdown selected option: India\n        Testing Date of Birth input...\n        Date of Birth field set to: 2002-05-26\n        Using file path: /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/DummyFiles/Resume.pdf\n        Testing file upload...\n        File uploaded successfully: /home/wafers/Desktop/dev/c#/task/SeleniumTest/bin/Debug/net9.0/DummyFiles/Resume.pdf\n        \n\n    Test summary: total: 1, failed: 0, succeeded: 1, skipped: 0, duration: 6.1s\n    Build succeeded with 1 warning(s) in 7.1s\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkartik8dwivedi%2Fseleniumtesting-automated-web-form-testing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkartik8dwivedi%2Fseleniumtesting-automated-web-form-testing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkartik8dwivedi%2Fseleniumtesting-automated-web-form-testing/lists"}