This project contains automated end-to-end UI tests for the Urban Routes web application. The objective is to validate the complete taxi booking process, ensuring that users can successfully request a ride through different booking scenarios and configurations according to the specified requirements.
The automated tests verify critical user flows, input validations, fare selection, ride options, and overall application behavior from the initial booking steps to the final ride confirmation.
-
data.py- Contains all test data, input values, expected results, and configurations required to execute the automated test scenarios. -
main.py- Contains the automated Selenium test cases that validate the complete taxi booking workflow, including different ride request variations based on business requirements.
- Python:
Primary language used to develop automated UI tests.
-
Selenium WebDriver:
Used to automate browser interactions and simulate real user behavior. -
WebDriverWait:
Used to implement explicit waits and handle dynamic web elements efficiently.
-
UI Automation Testing:
Automated validation of user interface components and interactions. -
End-to-End Testing (E2E):
Verification of the complete taxi booking process from start to finish. -
Functional Testing:
Validation of business requirements and application functionality. -
Regression Testing:
Ensures existing features continue working correctly after changes or updates.
- The project uses multiple locator techniques
to ensure reliable element identification::
- ID
- Class Name
- XPath
- CSS Selectors
- Name
- Tag Name
-
Form Interactions:
- Completing text fields
- Entering user information
- Validating input fields
-
Button Interactions:
- Click actions
- Navigation through application workflows
-
Modal Handling:
- Interaction with pop-up windows and modal dialogs
-
Dynamic Element Management:
- Explicit waits for asynchronously loaded elements
The automated tests validate:
- Complete taxi booking workflow
- User input validation
- Ride selection and configuration
- UI behavior and navigation
- Dynamic element handling
- End-to-end booking scenarios
- Error handling and validation messages
-
Explicit Wait Strategy:
Proper use of WebDriverWait to improve test stability and reliability. -
Descriptive Naming Conventions: Clear and meaningful names for variables, functions, and test cases.
-
Maintainable Test Structure: Well-organized code structure for easier maintenance and scalability.
-
Reusable Test Data:
Centralized test data management to simplify updates and reduce duplication. -
Readable and Scalable Code:
Project architecture designed to support future test expansion and long-term maintenance.
Project Objective
The goal of this project is to demonstrate practical
experience in UI test automation using Selenium WebDriver and Python by validating critical business flows within a taxi booking application.
This project showcases skills in:
- Test Automation
- Selenium WebDriver
- Python
- UI Testing
- End-to-End Testing
- Functional Testing
- Regression Testing
- Test Design
- Software Quality Assurance