package org.fluentlenium.core.events; import org.fluentlenium.core.domain.FluentWebElement; import org.openqa.selenium.Alert; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; /** * Listener interface for events. */ public interface EventListener { /** * Called before {@link org.openqa.selenium.WebDriver#get get(String url)}, * {@link org.openqa.selenium.WebDriver.Navigation#to navigate().to(String url)}. * * @param url URL * @param driver WebDriver */ void beforeNavigateTo(String url, WebDriver driver); /** * Called after {@link org.openqa.selenium.WebDriver#get get(String url)}, * {@link org.openqa.selenium.WebDriver.Navigation#to navigate().to(String url)}. Not called, if * an exception is thrown. * * @param url URL * @param driver WebDriver */ void afterNavigateTo(String url, WebDriver driver); /** * Called before {@link org.openqa.selenium.WebDriver.Navigation#back navigate().back()}. * * @param driver WebDriver */ void beforeNavigateBack(WebDriver driver); /** * Called after {@link org.openqa.selenium.WebDriver.Navigation navigate().back()}. Not called, * if an * exception is thrown. * * @param driver WebDriver */ void afterNavigateBack(WebDriver driver); /** * Called before {@link org.openqa.selenium.WebDriver.Navigation#forward navigate().forward()}. * * @param driver WebDriver */ void beforeNavigateForward(WebDriver driver); /** * Called after {@link org.openqa.selenium.WebDriver.Navigation#forward navigate().forward()}. * Not called, * if an exception is thrown. * * @param driver WebDriver */ void afterNavigateForward(WebDriver driver); /** * Called before {@link WebDriver#findElement WebDriver.findElement(...)}, * {@link WebDriver#findElements WebDriver.findElements(...)}, {@link org.openqa.selenium.WebElement#findElement * WebElement.findElement(...)}, {@link org.openqa.selenium.WebElement * #findElement WebElement.findElements(...)}. * * @param element will be <code>null</code>, if a find method of <code>WebDriver</code> is called. * @param by locator being used * @param driver WebDriver */ void beforeFindBy(By by, FluentWebElement element, WebDriver driver); /** * Called after {@link WebDriver#findElement WebDriver.findElement(...)}, * {@link WebDriver#findElements WebDriver.findElements(...)}, {@link org.openqa.selenium.WebElement#findElement * WebElement.findElement(...)}, {@link org.openqa.selenium.WebElement#findElement WebElement.findElements(...)}. * * @param element will be <code>null</code>, if a find method of <code>WebDriver</code> is called. * @param by locator being used * @param driver WebDriver */ void afterFindBy(By by, FluentWebElement element, WebDriver driver); /** * Called before {@link org.openqa.selenium.WebElement#click WebElement.click()}. * * @param driver WebDriver * @param element the WebElement being used for the action */ void beforeClickOn(FluentWebElement element, WebDriver driver); /** * Called after {@link org.openqa.selenium.WebElement#click WebElement.click()}. Not called, if an exception is * thrown. * * @param driver WebDriver * @param element the WebElement being used for the action */ void afterClickOn(FluentWebElement element, WebDriver driver); /** * Called before {@link org.openqa.selenium.WebElement#clear WebElement.clear()}, * {@link org.openqa.selenium.WebElement#sendKeys}, * {@link org.openqa.selenium.WebElement#sendKeys(CharSequence...)}. * * @param element the WebElement being used for the action * @param driver WebDriver * @param charSequence value of the element */ void beforeChangeValueOf(FluentWebElement element, WebDriver driver, CharSequence[] charSequence); /** * Called after {@link org.openqa.selenium.WebElement#clear WebElement.clear()}, * {@link org.openqa.selenium.WebElement#sendKeys}, * {@link org.openqa.selenium.WebElement#sendKeys(CharSequence...)} . Not called, if an exception is thrown. * * @param element the WebElement being used for the action * @param driver WebDriver * @param charSequence value of the element */ void afterChangeValueOf(FluentWebElement element, WebDriver driver, CharSequence[] charSequence); /** * Called before * {@link org.openqa.selenium.JavascriptExecutor#executeScript(String, Object[]) } * * @param driver WebDriver * @param script the script to be executed */ void beforeScript(String script, WebDriver driver); /** * Called after * {@link org.openqa.selenium.JavascriptExecutor#executeScript(String, Object[]) } * . * Not called if an exception is thrown * * @param driver WebDriver * @param script the script that was executed */ void afterScript(String script, WebDriver driver); /** * Called whenever an exception would be thrown. * * @param driver WebDriver * @param throwable the exception that will be thrown */ void onException(Throwable throwable, WebDriver driver); /** * Called before {@link org.openqa.selenium.WebDriver.Navigation#refresh navigate().refresh()}. * * @param driver WebDriver */ void beforeNavigateRefresh(WebDriver driver); /** * Called after {@link org.openqa.selenium.WebDriver.Navigation#refresh navigate().refresh()}. Not called, * if an exception is thrown. * * @param driver WebDriver */ void afterNavigateRefresh(WebDriver driver); /** * Called before {@link Alert#accept()} * * @param driver WebDriver */ void beforeAlertAccept(WebDriver driver); /** * Called after {@link Alert#accept()} * * @param driver WebDriver */ void afterAlertAccept(WebDriver driver); /** * Called before {@link Alert#dismiss()} * * @param driver WebDriver */ void beforeAlertDismiss(WebDriver driver); /** * Called after {@link Alert#dismiss()} * * @param driver WebDriver */ void afterAlertDismiss(WebDriver driver); }