This is a customizable Selenium WebDriver automation framework, designed to support multiple browsers, remote execution, and various other features.
The framework is divided into different packages for better organization and ease of use:
com.company.automation.test
: Contains all the test classes.com.company.automation.pageobjects
: Contains the Page Object classes that abstract the interaction with the web pages.com.company.automation.driver
: Contains classes for managing the WebDriver instances and related configuration.com.company.automation.configuration
: Contains the ConfigurationManager class that manages the application configuration.
The framework uses configuration properties that can be set in the config.properties
file located in the src/main/resources
directory.
To execute tests on a local machine, make sure the appropriate WebDriver executable (e.g., chromedriver
for Chrome, geckodriver
for Firefox) is in the system's PATH. The configuration parameters browser.name
, browser.version
, and platform.name
can be set in the config.properties
file.
For remote execution, like on a Selenium Grid or cloud-based solution, set the hub.url
property in the config.properties
file to the URL of the Selenium Hub. The framework will then automatically use a RemoteWebDriver
to execute the tests.
The framework also supports other features like:
- Automatic management of cookies
- Customizable wait times with dynamic adjustments
- Support for headless browsers
- Support for mobile browsers
- Support for cloud-based execution (e.g., SauceLabs, BrowserStack)