Este framework cuenta con las siguientes clases
TestRunner: En ella se configura cucumber con la anotacion @CucumberOptions para que al ejecutar los test se busque los escenarios en el feature file y se ejecute los steps asociados en la clase Steps. Finalmente en la anotacion @AfterClass se establece cerrar el navegador luego de ejecutar los tests
BasePage: Establece la inicializacion del web driver y metodos basicos para el modelado de la pagina a automatizar. En estos metodos se implementan esperas implicitas para los web elements para que al definir los steps nos quede un codigo mas simplificado y no sea necesario agregar esperas explicitas en cada paso
Evidence: Bajo la anotacion @After se define un metodo que tomara una captura de pantalla en el caso de que el escenario del test arroje un error
MainPage: Hereda de BasePage y se utiliza para definir los metodos y xpaths que necesitaremos para ejecutar los tests. Como BasePage ya tiene la creacion del web driver, se utiliza el constructor de forma que en la clase Steps solo se crea una instancia de MainPage y ya estamos listos para definir los pasos
Steps: En esta clase se importa MainPage y se crea una instancia del metodo MainPage. Luego de esto ya estamos listos para para definir los steps por medio de las anotaciones @Given @When @And @Then