Utilizaremos el siguiente arquetipo para el proyecto.

Consideraciones a tener en cuenta:
Serenity.conf

Antes de iniciar a programar las automatizaciones debemos realizar las siguientes configuraciones:
1 2 3 4 5 6 |
webdriver{ driver = provided provided.type = mydriver provided.mydriver = "starter.winium.util.CustomWiniumDriver" thucydides.driver.capabilities = mydriver } |
En la propiedad “provided.mydriver” debemos indicar donde se encuentra la clase que contiene las configuraciones del driver a utilizar en este caso “CustomWiniumDriver”
2. Debemos indicar la ruta donde se encuentra el programa a probar y la ruta del driver de la siguiente manera:
1 2 3 4 5 6 |
environments { default { windows.program.path = "C:/windows/system32/calc.exe" servidor.winium.path = src/test/resources/webdriver/windows/WiniumDriver.exe" } } |

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
packege.starter.winium.util; import.java.io.IOException; public class CustomWiniumDriver implements DriverSource{ public CustomWiniumDriver(){ super(); } @Override public WebDriver newDriver(){ try{ EnvironmentVariables vA = Injectors.getInjector().getInstance(EnvironmentVariables.class); String directorio = EnviromentSpecificConfiguration.from(vA).getProperty("windows.program.path"); DesktopOptions option = new DesktopOptions(); option.setAplicationPath(directorio); option.setDebugConnectToRunningApp(false); option.setLauchDelay(1); return new WiniumDriver(new URL("http://localhost:9999"),option); }catch(IOException e){ throw new NoSePudoInstanciarElDriver("No se pudo instanciar el driver $",e); } } @Override public boolean takesScreenshots(){ return true; } } |


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
package.starter.winium.hook; import.java.io.IOException; public class ServidorWinium{ private Process proceso; private EnvironmentVariables variablesDeAmbiente = Injectors.getInjector().getInstance(EnvironmentVariables.class); @Before public void iniciarServidorWinium() thows IOException, InterruptedException{ String directorio = EnviromentSpecificConfiguration.from(variablesDeAmbiente).getProperty("servidor.winium.path"); ProcessBuilder constructor = new ProcessBuilder(new File(directorio).getAbsolutePath()); proceso = constructor.start(); proceso.waitFor(3, TimeUnit.SECONDS); } @After public void terminarServidorWinium(){ proceso.destroy(); } } |
Mapeo de objetos y acciones.
El mapeo y las acciones sobre los objetos se realiza como comúnmente lo hacemos en el Page Object.
