When Selenium performs any of the operations like click, navigate etc, events are fired.
We can write custom code when these events are fired.
We will need to create a class that implements the methods to be called after event is fired.
Below class implements the WebDriverEventListener.
Next we need to register the instance of this class with driver as shown in highlighted code below. beforeNavigateTo method is called when execute below code. In fact, all the methods for corresponding events are called automatically.
What do you think on above selenium topic. Please provide your inputs and comments. You can write to me at reply2sagar@gmail.com
We can write custom code when these events are fired.
We will need to create a class that implements the methods to be called after event is fired.
Below class implements the WebDriverEventListener.
package chrometest; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.events.WebDriverEventListener; /** * Created by Sagar on 22-06-2016. */ public class ListenerImplementation implements WebDriverEventListener { @Override public void beforeNavigateTo(String s, WebDriver webDriver) { System.out.println("Before navigating to " + s); } @Override public void afterNavigateTo(String s, WebDriver webDriver) { } @Override public void beforeNavigateBack(WebDriver webDriver) { } @Override public void afterNavigateBack(WebDriver webDriver) { } @Override public void beforeNavigateForward(WebDriver webDriver) { } @Override public void afterNavigateForward(WebDriver webDriver) { } @Override public void beforeFindBy(By by, WebElement webElement, WebDriver webDriver) { System.out.println("Before find by"); } @Override public void afterFindBy(By by, WebElement webElement, WebDriver webDriver) { } @Override public void beforeClickOn(WebElement webElement, WebDriver webDriver) { } @Override public void afterClickOn(WebElement webElement, WebDriver webDriver) { } @Override public void beforeChangeValueOf(WebElement webElement, WebDriver webDriver) { } @Override public void afterChangeValueOf(WebElement webElement, WebDriver webDriver) { } @Override public void beforeScript(String s, WebDriver webDriver) { } @Override public void afterScript(String s, WebDriver webDriver) { } @Override public void onException(Throwable throwable, WebDriver webDriver) { System.out.println("Exception"); } }
Next we need to register the instance of this class with driver as shown in highlighted code below. beforeNavigateTo method is called when execute below code. In fact, all the methods for corresponding events are called automatically.
package chrometest; import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.events.EventFiringWebDriver; import java.util.concurrent.TimeUnit; /** * Created by Sagar on 17-02-2016. */
public class LaunchEventFiringChrome { static WebDriver driver = null; @Test public void launchChromeTest() throws Exception{ System.setProperty("webdriver.chrome.driver",
"C:\\Users\\Sagar\\Videos\\chromedriver_win32\\chromedriver.exe"); driver = new ChromeDriver(); EventFiringWebDriver eventFiringWebDriverDriver =
new EventFiringWebDriver(driver);
ListenerImplementation listenerImplementation =
new ListenerImplementation(); eventFiringWebDriverDriver.register(listenerImplementation); eventFiringWebDriverDriver.manage().timeouts().implicitlyWait
(10, TimeUnit.SECONDS); eventFiringWebDriverDriver.manage().window().maximize(); String domain = "http://www.softpost.org"; eventFiringWebDriverDriver.get(domain); System.out.println(eventFiringWebDriverDriver.getTitle()); eventFiringWebDriverDriver.close(); eventFiringWebDriverDriver.quit(); } }
What do you think on above selenium topic. Please provide your inputs and comments. You can write to me at reply2sagar@gmail.com