com.thoughtworks.webanalyticsautomation.scriptrunner.helper.WebDriverScriptRunnerHelper.java Source code

Java tutorial

Introduction

Here is the source code for com.thoughtworks.webanalyticsautomation.scriptrunner.helper.WebDriverScriptRunnerHelper.java

Source

package com.thoughtworks.webanalyticsautomation.scriptrunner.helper;

import com.thoughtworks.webanalyticsautomation.common.BROWSER;
import org.apache.log4j.Logger;
import org.openqa.selenium.Proxy;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.SkipException;

/**
 * Created by: Anand Bagmar
 * Email: abagmar@gmail.com
 * Date: Jan 4, 2011
 * Time: 10:38:05 AM
 *
 * Copyright 2010 Anand Bagmar (abagmar@gmail.com).  Distributed under the Apache 2.0 License
 */

public class WebDriverScriptRunnerHelper extends ScriptRunnerHelper {

    private WebDriver driver;

    public WebDriverScriptRunnerHelper(Logger logger, BROWSER browser, String baseURL) {
        super(logger, browser, baseURL);
    }

    @Override
    public void startDriver() {
        String os = System.getProperty("os.name").toLowerCase();
        logger.info("Starting WebDriver on OS: " + os + " for browser: " + browser.name());
        if (browser.equals(BROWSER.firefox)) {
            DesiredCapabilities capabilities = new DesiredCapabilities();
            instantiateFireFoxDriver(capabilities);
        } else if (browser.equals(BROWSER.iehta)) {
            if (!os.contains("win")) {
                throw new SkipException(
                        "Skipping this test as Internet Explorer browser is NOT available on " + os);
            }
            driver = new InternetExplorerDriver();
            driver.get(BASE_URL);
        } else if (browser.equals(BROWSER.chrome)) {
            driver = new ChromeDriver();
            driver.get(BASE_URL);
        }
        logger.info("Driver started: " + browser.name());
        logger.info("Page title: " + driver.getTitle());
    }

    private void instantiateFireFoxDriver(DesiredCapabilities capabilities) {
        driver = new FirefoxDriver(capabilities);
        driver.get(BASE_URL);
    }

    @Override
    public void startDriverUsingProxy(Proxy proxy) {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(CapabilityType.PROXY, proxy);
        instantiateFireFoxDriver(capabilities);
    }

    @Override
    public void stopDriver() {
        if (null != this.driver) {
            driver.close();
            driver.quit();
        }
    }

    @Override
    public Object getDriverInstance() {
        if (null == driver) {
            logger.info("Driver is null");
        }
        return driver;
    }
}