package org.fluentlenium.example.spring.config;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.Augmenter;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import java.net.MalformedURLException;
import java.net.URL;
import static org.openqa.selenium.remote.DesiredCapabilities.chrome;
public enum BrowserType {
CHROME {
@Override
public WebDriver getWebDriver() {
return new ChromeDriver();
}
@Override
protected DesiredCapabilities getBrowserCapabilities() {
return chrome();
}
};
protected abstract WebDriver getWebDriver();
protected abstract DesiredCapabilities getBrowserCapabilities();
public WebDriver getRemoteWebDriver(String hubLocation) {
try {
return new Augmenter().augment(new RemoteWebDriver(new URL(hubLocation), getBrowserCapabilities()));
} catch (MalformedURLException e) {
throw new ConfigException("Invalid hub location: " + hubLocation, e);
}
}
}