com.coderoad.automation.core.manager.DriverManager.java Source code

Java tutorial

Introduction

Here is the source code for com.coderoad.automation.core.manager.DriverManager.java

Source

/*
 * DriverManager.java
 * Copyright (c) 2014, CODEROAD, All Rights Reserved.
 *
 * This software is the confidential and proprietary information of CODEROAD
 * ("Confidential Information"). You shall not disclose such Confidential Information and shall use
 * it only in accordance with the terms of the license agreement you entered into with
 * CODEROAD.
 */
package com.coderoad.automation.core.manager;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.events.EventFiringWebDriver;

import com.coderoad.automation.common.enums.LogLevel;
import com.coderoad.automation.common.log.LogUtil;
import com.coderoad.automation.common.util.ParamUtil;
import com.coderoad.automation.core.browser.ChromeBrowser;
import com.coderoad.automation.core.browser.FirefoxBrowser;
import com.coderoad.automation.core.browser.IeBrowser;
import com.coderoad.automation.core.listener.EventListener;

/**
 * The Class DriverManager.
 * 
 * @author $Author:$
 * @version $Rev:$ $Date:$
 */
public class DriverManager {

    /** The web driver thread. */
    private static ThreadLocal<EventFiringWebDriver> webDriverThread = new ThreadLocal<EventFiringWebDriver>();

    /**
     * Inits the driver.
     */
    public static void initializeDriver() {

        String browser = ParamUtil.getBrowser();
        initializeDriver(browser);
    }

    /**
     * Initialize driver.
     * 
     * @param browser the browser
     */
    public static void initializeDriver(final String browser) {

        final WebDriver webDriver = getBrowserDriver(browser);
        registerDriver(webDriver);
    }

    /**
     * Gets the browser driver.
     * 
     * @param browser the browser
     * @return the browser driver
     */
    public static WebDriver getBrowserDriver(final String browser) {

        WebDriver webDriver = null;
        switch (browser) {
        case "firefox":
            webDriver = FirefoxBrowser.createDriver();
            break;
        case "chrome":
            webDriver = ChromeBrowser.createDriver();
            break;
        case "ie":
            webDriver = IeBrowser.createDriver();
            break;
        default:
            break;
        }
        return webDriver;
    }

    /**
     * Register driver.
     * 
     * @param webDriver the web driver
     */
    public static void registerDriver(final WebDriver webDriver) {

        LogUtil.log("Registering Driver ", LogLevel.HIGH);
        final EventListener eventListener = new EventListener();
        final EventFiringWebDriver efd = new EventFiringWebDriver(webDriver);
        efd.register(eventListener);
        webDriverThread.set(efd);
    }

    /**
     * Close.
     */
    public static void close() {

        close(getDriver());
    }

    /**
     * Close.
     * 
     * @param webDriver the web driver
     */
    public static void close(final WebDriver webDriver) {

        webDriver.manage().deleteAllCookies();
        webDriver.quit();
    }

    /**
     * Gets the driver.
     * 
     * @return the driver
     */
    public static EventFiringWebDriver getDriver() {

        return webDriverThread.get();
    }

    /**
     * Gets the web driver.
     * 
     * @return the web driver
     */
    public static WebDriver getWebDriver() {

        return getDriver().getWrappedDriver();
    }
}