How to implement a WebDriverEventListener in C#?

后端 未结 5 823
感情败类
感情败类 2021-01-01 06:01

How to implement WebDriverEventListener in C#?

I have no problem doing it in java importing:

import org.openqa.selenium.support.events.A         


        
5条回答
  •  清酒与你
    2021-01-01 06:41

    This link gives a nice explanation of event handling for selenium:

    The events mechanism in WebDriver is composed of two major objects:

    EventFiringWebDriver - A wrapper of the normal WebDriver API but adds the support of event triggering.
    WebDriverEventListener - An interface with pre-defined events that EventFiringWebDriver instance will trigger.

    Implementation of Event handling in Selenium as Class Diagram:

    Step 1: Create a class implementing WebDriverEventListener.

    public class DefaultWebDriverEventListener implements WebDriverEventListener {
    
        public void beforeNavigateTo(String url, WebDriver driver) {
            System.out.println("Driver will navigate to:" + url);
        }
    
       ...
    }
    

    Step 2: Initalize event-firing driver using the webdriver instance you have created

    //initalize FireFox webdriver instance
    WebDriver driver = new FirefoxDriver();
    //initalize event-firing driver using Firefox webdriver instance.
    EventFiringWebDriver eventDriver = new EventFiringWebDriver(driver); 
    

    Step 3: Register the listener

    //register event listener to even-firing webdriver instance
    eventDriver.register(listener);
    

    Now all the defined events in your implemented class will be executed when the selenium is executing. For instance, taking screenshot on exception etc.

    Step 4: You can also unregister the listener if you want to stop firing events when selenium

    eventDriver.unregister(listener);
    

提交回复
热议问题