The goal of this project is to provide an API to structure automated tests in a clean and composable manner. It consists of three parts:
Page Object is a design pattern proposed by Martin Fowler to encapsulate the details of the UI structure in a dedicated interface. In case the concrete control changes, it should not affect the test code unless the interface changes.
Navigation Facade is an interface to separate the navigation steps from the test steps. SpiConfigurableNavigationStrategyModule is a reference implementation which loads instances of NavigationStrategy defined in the ServiceLoader configuration files.
Commands API defines an abstraction for test steps to be reusable, composable, and in case of test failure, revertable. It follows the Command design pattern.