package net.thucydides.core.webdriver;
import org.openqa.selenium.Capabilities;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.phantomjs.PhantomJSDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.safari.SafariDriver;
import java.net.URL;
/**
* Centralize instantiation of WebDriver drivers.
*/
public class WebdriverInstanceFactory {
public WebdriverInstanceFactory() {
}
public WebDriver newInstanceOf(final Class<? extends WebDriver> webdriverClass) throws IllegalAccessException, InstantiationException {
return webdriverClass.newInstance();
}
public WebDriver newRemoteDriver(URL remoteUrl, Capabilities capabilities) {
return new RemoteWebDriver(remoteUrl, capabilities);
}
public WebDriver newFirefoxDriver(Capabilities capabilities) {
return new FirefoxDriver(capabilities);
}
public WebDriver newChromeDriver(Capabilities capabilities) {
return new ChromeDriver(capabilities);
}
public WebDriver newSafariDriver(Capabilities capabilities) {
return new SafariDriver(capabilities);
}
public WebDriver newInternetExplorerDriver(Capabilities capabilities) {
return new InternetExplorerDriver(capabilities);
}
public WebDriver newHtmlUnitDriver(Capabilities capabilities) {
return new HtmlUnitDriver(capabilities);
}
public WebDriver newPhantomDriver(Capabilities caps) {
return new PhantomJSDriver(caps);
}
}