{"id":22616287,"url":"https://github.com/vernko/java-selenium-ui-demo","last_synced_at":"2026-05-14T13:31:40.996Z","repository":{"id":99911666,"uuid":"401941795","full_name":"vernko/java-selenium-ui-demo","owner":"vernko","description":"UI automation done with Java and Selenium","archived":false,"fork":false,"pushed_at":"2024-12-03T05:37:41.000Z","size":7955,"stargazers_count":0,"open_issues_count":7,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-03T10:46:34.593Z","etag":null,"topics":["automation","java","selenium","testing"],"latest_commit_sha":null,"homepage":"","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/vernko.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":"2021-09-01T05:25:47.000Z","updated_at":"2024-12-03T05:37:45.000Z","dependencies_parsed_at":"2024-12-03T06:38:45.492Z","dependency_job_id":null,"html_url":"https://github.com/vernko/java-selenium-ui-demo","commit_stats":null,"previous_names":["vernko/java-selenium-ui-demo"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vernko%2Fjava-selenium-ui-demo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vernko%2Fjava-selenium-ui-demo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vernko%2Fjava-selenium-ui-demo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vernko%2Fjava-selenium-ui-demo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vernko","download_url":"https://codeload.github.com/vernko/java-selenium-ui-demo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246122245,"owners_count":20726822,"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","java","selenium","testing"],"created_at":"2024-12-08T19:11:58.782Z","updated_at":"2026-05-14T13:31:35.961Z","avatar_url":"https://github.com/vernko.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# java-selenium-ui-demo\n### Purpose\nThe purpose of this project is to automate UI tests of the website, https://www.theredx.com/ using Java \u0026 Selenium with Maven.\n\n##\n### FRAMEWORK INFORMATION\nThis framework uses the following:\n\n#### Languages\n- Java - version 12\n\n#### Dependencies\nThese should all be part of the pom.xml file.\n- Maven.compiler - version 1.2\n- Selenium - version 3.141.59\n- Test NG - version 6.14.3\n- Surefire - version 3.0.0-M5\n\n#### Design Pattern\n- Page Object Model - if you haven't used the Page Object Model before, check out the Page Object Model section below.\n\n##\n### GETTING STARTED\nYou will need the following on your computer in order to work on this project:\n* Java - Using version 12 for this project\n* Maven - Check out the Maven section below for more info on installing it\n\n1. Open the terminal\n2. Navigate to the directory you want to store this project\n3. Run this command ```git clone https://github.com/vernko/redx-demo.git```\n4. Once it has cloned the repo, you should see something like ```redx-demo git:(main)```\n5. Now you know you have the code for the repo on your machine\n6. Open this project in the code editor of your choice\n(for java, IntelliJ is really nice, recommend downloading the free community version at https://www.jetbrains.com/idea/download/)\n7. Once you have the project open, check \u0026 make sure you have the right version \n\n##\n### NAMING CONVENTIONS\n- Packages - camelCase (typically only one word though)\n- Classes - PascalCase\n- Methods - camelCase\n\n##\n### ORGANIZATION - PAGE OBJECTS\n#### Page Object Classes\nYou'll find any Page Objects under the \"main\" directory in the \"pages\" package.\n\nEssentially, for each page you create a new class. You can use that class object anywhere in the automation.\nWe use these classes to put any selenium-based operations such as:\n- Locators\n- Clicks\n- Sending keys/inputs\n\nAdd methods \u0026 locators related to that page inside this class.\n\nI prefer to organize these in a hybrid alphabetical/functionality order.\n- If there is no related functionality, order it alphabetically.\n- If there is related functionality, put that in order of occurrence.\n\n##\n### ORGANIZATION - TESTS\n \nYou'll find any tests under the \"test\" directory. \n- Each page is a separate test package.\n- Each package has a test class to hold all the tests\n- All tests are separate methods within the test class. \n\n##\n### CREATING TESTS\nThis framework uses TestNG. If you aren't familiar with TestNG. Check out the TestNG section below for more info.\n\nWith TestNG, every test is its own method with the notation of ```@Test```.\n\nJust like with methods in a Page Object class, organize these in a hybrid alphabetical/functionality order.\n- If there is no related functionality, order it alphabetically.\n- If there is related functionality, put that in order of occurrence.\n\n#### Test Structure\n- A descriptive name for the test\n- Test data/info needed for validation of tests\n- Clean descriptive steps (aka methods from page object class)\n- Assertion - whatever you are validating to ensure the test passes as you expect.\n\n#### Assert\nTestNG provides an \"Assert\" class with a variety of asserts including:\n- assertEquals\n- assertTrue\n- assertFalse\n- assertNotEquals\n\n#### Example of Creating a New Test\nIf you need to create new tests related to a group of test already created, go to that test class, and add the new test there.\n\nIf you need to create a test that does not relate to a current test. Add a new package for that particular page, then add the new test.\n\nFor example, if you need to add a test for filling in the contact info on the About Me page. We might do something like this.\n1. Go to test -\u003e java\n2. Create a ```aboutMe``` package\n3. Create a ```AboutMeTests``` class under the ```aboutMe``` package.\n4. Make sure ```AboutMeTests``` extends the correct class, in this case that would be ```BaseTests```.\n5. Add a new test, named something like ```testCanSumbitContactForm```\n6. Add test steps\n7. Assert that form was submitted\n```\n@Test\npublic void testCanSubmitContactForm(){\n# Go to About Me\n# Fill out contact form\n# Submit that form\n# Assert form was submitted\n}\n```\n##\n### RUNNING TESTS\n#### Individual Tests\nFrom IDE\n1. Go to the test class of the test you want to run\n2. Find the test (aka test method) you want to run\n3. Click the play button next to the test\n\nFrom Command Line\n\nTo run tests from the command line, you'll need to have ```mvn``` installed on your device.\nOnce you have maven installed on your device, run ```mvn -v```. This verifies maven installed.\n\n- Test Class - run all the tests in an entire class\n\n```mvn test -Dtest=ClassName test```\n\n#### Automation Suite\nThere are 2 ways to run the entire suite for automation\n\nXML File\n1. Find the \"aumniAutomationSuite.xml\" file\n2. Run the suite of tests.\n\nCommand Line\n\n```mvn test```\n\n\n##\n### ADDITIONAL RESOURCES\n#### Maven\nIf you don't have maven installed on your device, check out this article to help install it on your device.\n[Install Maven](https://www.baeldung.com/install-maven-on-windows-linux-mac)\n\nFor mac users, you can install maven view Homebrew by running this command ```brew install maven```\n\n##\n#### Test NG\nBelow are some good resources to help with Test NG if you have never used it before.\n\nTestNG's official site - [TestNG](https://testng.org/doc/)\n\nA good tutorial [Test Automation University](https://testautomationu.applitools.com/) - [Intro to TestNG](https://testautomationu.applitools.com/introduction-to-testng/index.html)\n\n##\n### Selenium\nIf you haven't used Selenium before, basically it's a tool that helps to help automate tasks. In testing, we use it to help automate user flows especially web-related items.\n\nSelenium's official site - [Selenium](https://www.theredx.com/)\n\n##\n#### Page Object Model\nThe article below from BrowserStack provides good info about the POM - [Article on POM](https://www.browserstack.com/guide/page-object-model-in-selenium)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvernko%2Fjava-selenium-ui-demo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvernko%2Fjava-selenium-ui-demo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvernko%2Fjava-selenium-ui-demo/lists"}