Java tutorial
/* * 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(); } }