A comprehensive Selenium WebDriver automation framework implementing 5 web automation challenges using Java, TestNG, and modern automation practices.
This project demonstrates Selenium WebDriver automation through real-world challenges. Development follows a two-phase approach:
- Phase 1: Single-file solutions (Challenge_1.java, Challenge_2.java, etc.)
- Phase 2: Refactored into structured framework with POM pattern
- Java 8+ | Selenium WebDriver | TestNG | Maven
- AssertJ | Allure Reports | Page Object Model
- Thread Local | Apache POI | SonarLint
Web_Automation-Challenges/
├── src/test/java/com/ChiragRathava/
│ ├── base/ # Base test classes
│ ├── pages/ # Page Object Models
│ ├── tests/ # Test classes
│ └── utils/ # Utility classes
├── resources/ # Configuration files
├── Challenge_1.java # Single-file solution for Challenge 1
├── Challenge_2.java # Single-file solution for Challenge 2
├── Challenge_3.java # Single-file solution for Challenge 3
└── Challenge_4.java # Single-file solution for Challenge 4
| Challenge | Description | Target Site | Key Features |
|---|---|---|---|
| Challenge 1 | Financial Calculation | demo.applitools.com | Login automation, Table parsing, Amount calculation (verify 1996.22) |
| Challenge 2 | Web Tables Verification | demoqa.com/webtables | Edit table rows, Add new entries, Generic locators |
| Challenge 3 | Modal Dialog Testing | demoqa.com/modal-dialogs | Modal interactions, Content verification |
| Challenge 4 | Parallel Browser Testing | app.vwo.com | Multi-browser login, Dashboard verification, Parallel execution |
| Challenge 5 | Advanced Interactions | VWO Heatmap | Iframe/Multi-window handling, Action class, Heatmap clicks |
Advanced Framework Implementation: For Challenge 5 and advanced framework features, check out: Selenium_AdvanceFramework
- Java 8+ | Maven 3.6+ | Chrome/Firefox browsers
git clone <your-repository-url>
cd Web_Automation-Challenges
mvn clean installmvn compile exec:java -Dexec.mainClass="Challenge_1"
mvn compile exec:java -Dexec.mainClass="Challenge_2"
mvn compile exec:java -Dexec.mainClass="Challenge_3"
mvn compile exec:java -Dexec.mainClass="Challenge_4"mvn test -Dtest=TableColumnSumTest_Challenge1 # Challenge 1
mvn test -Dtest=WebTablesTest_Challenge2 # Challenge 2
mvn test -Dtest=content_of_theModel_Challenge3 # Challenge 3
mvn test -Dtest=ParallelExecute_Challenge4 # Challenge 4mvn clean test # All framework tests
mvn test -DparallelMode=methods # Parallel executionmvn allure:report # Generate Allure report
mvn allure:serve # Serve Allure report- ✅ Rapid Prototyping: Quick solution validation
- ✅ Learning Focus: Understand each challenge thoroughly
- ✅ Iterative Enhancement: Gradual improvement to framework
- ✅ Best Practices: Final implementation with proper architecture
- Thread Safety: ThreadLocal WebDriver instances
- Page Object Model: Structured, maintainable code
- Data-Driven: Excel/Properties integration
- Reporting: Allure reports with screenshots
- Parallel Execution: Multi-browser support
- Fork repository
- Create feature branch
- Implement changes
- Submit pull request
| Issue | Solution |
|---|---|
| WebDriver not found | Check WebDriverManager configuration |
| Element not found | Verify wait strategies and locators |
| Single-file execution | Ensure dependencies in classpath |
| Parallel execution | Check ThreadLocal implementation |
Author: Chirag Rathava | Version: 1.0 | Last Updated: August 2025
💡 Tip: Start with single-file solutions to understand the challenges, then explore the framework implementation for advanced features.