This project contains automated UI tests for TBC Bank using Java, Selenide, and TestNG.
The goal is to validate key user journeys across desktop and mobile layouts.
first-final-project/
│
├── src/
│ ├── main/
│ │ └── java/
│ │ └── ge.tbc.testautomation/
│ │ ├── data/
│ │ │ └── Constants.java # URLs, test data, device parameters
│ │ │
│ │ ├── pages/
│ │ │ ├── CommonPage.java # Shared page elements (search, navigation, etc.)
│ │ │ ├── MapPage.java # Map-specific web elements
│ │ │ └── HomePage.java # Home page elements
│ │ │
│ │ ├── steps/
│ │ │ ├── CommonSteps.java # Reusable business actions
│ │ │ └── MapSteps.java # Map-specific interactions
│ │ │
│ │ └── runners/
│ │ └── BaseTest.java # Test configuration & device handling
│ │
│ └── test/
│ └── java/
│ └── ge.tbc.testautomation.tests/
│ ├── SearchResultsTest.java # Search functionality tests
│ ├── MapTest.java # Map display & interaction tests
│ ├── TabsFiltersTest.java # Tab switching & filtering tests
│ ├── GlobalNavigationTest.java # Site-wide navigation tests
│ └── ExchangeTest.java # Exchange rate functionality tests
│
├── testng.xml # TestNG suite configuration
├── pom.xml # Maven dependencies & build config
├── README.md # Project documentation
└── .gitignore # Git ignore patterns
- Java 17+
- Maven
- IntelliJ IDEA / VS Code
- Chrome browser
Clone the repository and install dependencies:
git clone <repo-url>
cd <repo-folder>Run both desktop and mobile suites in parallel via TestNG XML:
testng.xml defines two test suites:
- Desktop Suite → runs with
browserSize=1440x900 - Mobile Suite → runs with
browserSize=375x667
Device is controlled via the isMobile flag in BaseTest which is passed
down to corresponding tests which extend it.
- Verify that the map container loads successfully
- Ensure at least one marker is visible on the map
- Perform zoom in on the map
- Perform zoom out on the map
- Perform pan action on the map (drag in any direction) and verify that the map content shifts accordingly
- Switch between ATMs and Branches tabs
- Apply and remove filters (24/7)
- Verify results list updates accordingly
- Perform search with valid keyword → results displayed
- Perform search with invalid keyword → empty state displayed
- Close search overlay → page returns to normal state
- Hover on main navigation
- Open mega menu, select a category (e.g., Business Loans)
- Verify page URL and breadcrumb trail
- Confirm last breadcrumb matches the current page
- (Desktop only: breadcrumbs are hidden on mobile layout so presence of a single breadcrumb item is validated on mobile resolution)
- Navigate to Currency section
- Verify rates table shows USD, EUR, GBP with Buy/Sell columns
- Enter value into converter → conversion calculated
- Swap currencies → input currencies update accordingly
- Cross-device testing: Desktop & Mobile handled in one project (
isMobileflag inBaseTest) - Reusable Steps/PageObjects: Clear separation of concerns between elements and actions
- Parallel Execution: Desktop + Mobile tests run simultaneously via TestNG
- Zephyr Integration: All scenarios documented in Zephyr (linked to Jira test cases)
Key configuration files:
testng.xml- Test suite configuration and parallel executionBaseTest.java- Browser settings, timeouts, and device parametersConstants.java- Test URLs and environment data
Common issues and solutions:
- Chrome driver issues: Ensure Chrome browser is updated
- Element not found: Check if page loads completely before interaction
- Mobile tests failing: Verify viewport settings in BaseTest