package com.secookbook.examples.chapter04;

import java.io.File;

import org.apache.commons.io.FileUtils;
import org.openqa.selenium.*;
import org.openqa.selenium.remote.Augmenter;
import org.openqa.selenium.support.events.WebDriverEventListener;

public class MyListener implements WebDriverEventListener {

	public void afterChangeValueOf(WebElement element, WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void beforeChangeValueOf(WebElement element, WebDriver
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void afterFindBy(By by, WebElement element, WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void afterNavigateBack(WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void afterNavigateForward(WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void afterNavigateTo(String url, WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void afterScript(String script, WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void beforeChangeValueOf(WebElement element, WebDriver driver) {
		element.clear();
	}

	public void beforeClickOn(WebElement element, WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void beforeFindBy(By by, WebElement element, WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void beforeNavigateBack(WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void beforeNavigateForward(WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void beforeNavigateTo(String url, WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void beforeScript(String script, WebDriver driver) {
		// TODO Wygenerowany automatycznie nagłówek metody
		
	}

	public void onException(Throwable exception, WebDriver driver) {
 	    try {
	    	if (driver.getClass().getName().equals("org.openqa.selenium.remote.RemoteWebDriver")) {
	    		driver = new Augmenter().augment(driver);
		    } 
		    File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
		    FileUtils.copyFile(scrFile, new File("target/screenshots/error.png"));
	    } catch (Exception e) {
	    	e.printStackTrace();
	    }
	}
}

