Scaffold is a Selenium WebDriver abstraction built in Java 11 with Spring Boot 2.x / Jersey / Jax Rs. Out of the box, it provides a myriad of additional features on top of the base WebDriver wrapper:
- Bootstrapper - Starts and stops a new thread safe WebDriver instances (parallelizable).
- Provides an abstraction of WebElements to depict literal object representations of what exists in the DOM (e.g. InputWebElement or LinkWebElement).
- Implicitly waits for elements to be located during page object instantiation and element manipulation
- Automatically handles StaleElementException issues when the state of the DOM has changed.
- Provides a Navigation class to give users a separation of concerns between test setup and test assertions.
- Provides a Spring Boot auto-configuration for configuring a browser when creating Spring Boot profiles in an implementing project (DesiredCapabilities, e.g. browser type, environment type, etc).
- Provides a Spring Boot auto-configuration for managing configuring connections to SauceLabs.
- Configures Junit Jupiter's parallel testing when running the testing through an automated framework like Sauce or Grid
- Provides all dependencies to implementing projects
- Java 11
- Maven 3.x
CI jobs can be viewed on github actions page of this repo.
- For manual setup, view the Usage Guide for a complete explanation on how to get started.
- For an automated setup, our Scaffold Archetype is the best approach. Check out that repo for more information, here.