package stepdefinitions;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriver;
import io.cucumber.java.Scenario;
import runner.browser_manager.DriverManager;
import runner.browser_manager.DriverType;
import io.cucumber.java.After;
import io.cucumber.java.Before;
import runner.browser_manager.DriverManagerFactory;
public class Hooks {
private static WebDriver driver;
private static int numberOfCase = 0;
private DriverManager driverManager;
// public static long startTime;
// public static long endTime;
@Before
public void setUp() {
numberOfCase ++;
System.out.println("Se está ejecutando el escenario nro: " + numberOfCase);
// Registro de la hora de inicio
// startTime = System.currentTimeMillis();
//Con Controlador
driverManager = DriverManagerFactory.getManager(DriverType.FIREFOX);
driver = driverManager.getDriver();
// driver.manage().window().maximize();
}
@After
public void tearDown(Scenario scenario) {
if(scenario.isFailed()){
byte[] screenshot = ((TakesScreenshot)driverManager.getDriver()).getScreenshotAs(OutputType.BYTES);
scenario.attach(screenshot,"image/png","screenshot");
}
// Registro de la hora de fin
// long endTime = System.currentTimeMillis();
// Cálculo de la duración en milisegundos
// long duration = endTime - startTime;
System.out.println("El escenario nro: " + numberOfCase + "se ejecutó correctamente");
// System.out.println("Inicio de ejecución: " + new java.util.Date(startTime));
// System.out.println("Fin de ejecución: " + new java.util.Date(endTime));
// System.out.println("Duración de ejecución: " + duration + " milisegundos");
driverManager.quitDriver();
}
public static WebDriver getDriver() {
return driver;
}
}