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