package jp.vmi.selenium.webdriver; import org.openqa.selenium.Capabilities; import org.openqa.selenium.Dimension; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; /** * Factory of HtmlUnitDriver. */ public class HtmlUnitDriverFactory extends WebDriverFactory { @SuppressWarnings("javadoc") public static final String BROWSER_NAME = "htmlunit"; private static final String HTML_UNIT_DRIVER = "org.openqa.selenium.htmlunit.HtmlUnitDriver"; /** * Constructor. */ public HtmlUnitDriverFactory() { super(); } @Override public String getBrowserName() { return BROWSER_NAME; } @Override public WebDriver newInstance(DriverOptions driverOptions) { DesiredCapabilities caps = setupProxy(DesiredCapabilities.htmlUnit(), driverOptions); caps.setJavascriptEnabled(true); caps.merge(driverOptions.getCapabilities()); try { WebDriver driver = (WebDriver) Class.forName(HTML_UNIT_DRIVER).getConstructor(Capabilities.class).newInstance(caps); // HtmlUnitDriver driver = new HtmlUnitDriver(caps); setInitialWindowSize(driver, driverOptions); return driver; } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } } @Override protected Dimension getDefaultWindowSize(WebDriver driver) { return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT); } }