This project demonstrates a comprehensive Selenium-based test automation suite written in Java using JUnit 5 and the Page Object Model (POM) design pattern. It is designed as a portfolio project to showcase testing best practices and covers multiple real-world scenarios using The Internet Herokuapp.
- ✅ Login functionality (valid and invalid credentials)
- ☑️ Checkbox interactions
- 🔽 Dropdown menu selection
- 📁 File upload feature
⚠️ JavaScript alert handling (alerts, confirms)- 🔄 Dynamic content (checkbox disappearance, input enable/disable)
- Java 17+
- Selenium 4
- JUnit 5
- Maven
- Chrome WebDriver
SeleniumTestSuite/
├── pom.xml
└── src/
├── main/
│ └── java/
│ └── pages/
│ ├── BasePage.java
│ ├── LoginPage.java
│ ├── CheckboxesPage.java
│ ├── DropdownPage.java
│ ├── FileUploadPage.java
│ ├── JavaScriptAlertsPage.java
│ └── DynamicControlsPage.java
└── test/
└── java/
└── tests/
├── LoginTest.java
├── CheckboxesTest.java
├── DropdownTest.java
├── FileUploadTest.java
├── JavaScriptAlertsTest.java
└── DynamicControlsTest.java
Prerequisites
- Java JDK 17 or higher installed
- Maven installed
- Chrome browser installed
- ChromeDriver installed and properly set in your system path
- Clone the repository:
git clone https://github.com/Artenes/SeleniumTestSuite.git
- Navigate to the project directory:
cd SeleniumTestSuite
- Install dependencies:
mvn clean install
Run the test suite:
mvn test
- Test execution will open Chrome in headless mode and perform operations like login, checkbox selection, file uploads, and alert handling.
- Success and failure results will be reported in the console by Maven's Surefire plugin.
- Add a reporting tool like Allure or ExtentReports for detailed HTML reports
- Integrate with CI/CD pipelines (GitHub Actions, Jenkins)
- Add parallel cross-browser testing (using WebDriverManager / Selenium Grid)
- Add retry logic for flaky tests
This project is licensed under the MIT License.
Artenes Junior Gomes Nogueira
- GitHub: https://github.com/Artenes
- LinkedIn: https://linkedin.com/in/artenes