Selenium + Java + TestNG automation project for testing the Estoda search engine.
The project automates the main user flow:
Login → Search → Sort Results → Logout
This project was created to automate important functional scenarios of the Estoda web application.
The application includes a search engine that collects and searches content from news websites and other sources. The automation suite verifies that users can log in, perform searches, sort results, and log out successfully.
gazaisraelwar
These keywords were selected because they return real search results from the application's crawled news sources.
| Technology | Purpose |
|---|---|
| Java 17 | Programming language |
| Selenium WebDriver | Browser automation |
| TestNG | Test framework |
| Maven | Build & dependency management |
| Chrome / ChromeDriver | Browser execution |
| Page Object Model (POM) | Test architecture |
| Git & GitHub | Version control |
estoda-automation/
│
├── pom.xml # Maven configuration & dependencies
├── testng.xml # TestNG suite configuration
│
├── src/
│ └── test/
│ └── java/
│ └── com/
│ └── estoda/
│ │
│ ├── pages/ # Page Object Model classes
│ │ ├── LoginPage.java
│ │ └── SearchPage.java
│ │
│ ├── tests/ # TestNG test classes
│ │ ├── LoginTest.java
│ │ ├── InvalidLoginTest.java
│ │ ├── SearchTest.java
│ └── EstodaSmokeTest.java
│
└── target/ # Maven generated files
The project follows the Page Object Model (POM) design pattern.
Responsible for:
- Entering username
- Entering password
- Submitting the login form
Responsible for:
- Entering search keywords
- Performing searches
- Sorting results
- Reading search results
- Logging out
This keeps page locators and page actions separate from test logic, making the framework easier to maintain.
- ✅ Valid login
- ✅ Verify successful navigation to
/search/
- ✅ Search for
gaza - ✅ Search for
israel - ✅ Search for
war
- ✅ Gaza results — Ascending
- ✅ Gaza results — Descending
- ✅ Gaza results — No Sort
- ✅ Logout from the search page
- ✅ Verify navigation back to
/login/
The current SearchTest suite contains 7 automated tests.
Latest execution:
Tests run: 7
Failures: 0
Errors: 0
Skipped: 0
BUILD SUCCESS
Command used:
mvn clean test -Dtest=SearchTestgit clone https://github.com/Estoda/QA_Testing.gitcd QA_Testing/estoda-automationmvn clean test -Dtest=LoginTestmvn clean test -Dtest=SearchTestmvn clean testhttps://estoda3.pythonanywhere.com/
Login page:
https://estoda3.pythonanywhere.com/login/
Search page:
https://estoda3.pythonanywhere.com/search/
The Estoda search engine can return results from multiple sources, including:
- Ahram Online
- The Guardian
- CNN
- Wikipedia
- Al Jazeera
Example:
SEARCH: ISRAEL
Ahram Online - News, Business, Culture, Sports & Multimedia from Egypt
Rank: 0.00
Latest news, sport and opinion from the Guardian
Rank: 0.00
Breaking News, Latest News and Videos | CNN
Rank: 0.00
During execution, Selenium may display a warning similar to:
WARNING: Unable to find CDP implementation matching 151
This is a Selenium/Chrome DevTools compatibility warning. It does not prevent the current automated tests from passing.
The test suite has been successfully executed with:
Java 17
Selenium 4.35.0
Chrome 151
TestNG
Maven
This project focuses on demonstrating:
- Functional UI automation
- Selenium WebDriver usage
- TestNG test organization
- Page Object Model
- Explicit waits
- Assertions and validations
- Positive functional testing
- Search and sorting verification
- End-to-end user flow testing
- Maven test execution
- Git/GitHub project management
Possible future additions:
- Negative login scenarios
- Registration testing
- Search validation for empty input
- More sorting assertions based on result ranking
- Data-driven testing
- Screenshots on test failure
- Test reports
- CI/CD integration with GitHub Actions
Estoda QA Automation
Built with Java, Selenium WebDriver, TestNG and Maven.
Repository:
https://github.com/Estoda/QA_Testing