![JAR search and dependency download from the Maven repository](/logo.png)
com.clarolab.selenium.pages.browser.LocalBrowserBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of pages-framework Show documentation
Show all versions of pages-framework Show documentation
Framework for automated testing using Selenium. Provides easy configuration of WebDrivers with BrowserFactory. Provides a Page abstraction.
The newest version!
package com.clarolab.selenium.pages.browser;
import com.clarolab.selenium.pages.browser.web.*;
import com.clarolab.selenium.pages.config.TimeoutsConfig;
import com.clarolab.selenium.pages.exception.FrameworkWebDriverException;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.Optional;
import java.util.logging.Level;
public class LocalBrowserBuilder extends BrowserBuilder {
private static final Logger logger = LoggerFactory.getLogger(LocalBrowserBuilder.class);
private final WebBrowserType browserType;
private final String baseTestUrl;
private TimeoutsConfig timeoutsConfig;
private Optional webDriverPath = Optional.empty();
private Optional browserBinaryPath = Optional.empty();
private Optional> options = Optional.empty();
private LocalBrowserBuilder(WebBrowserType browserType, String baseTestUrl) {
this.browserType = Preconditions.checkNotNull(browserType, "You must provide a non-null browserType!");
this.baseTestUrl = Preconditions.checkNotNull(baseTestUrl, "You must provide a non-null baseTestUrl!");
this.timeoutsConfig = TimeoutsConfig.defaultTimeoutsConfig();
}
//------------Getters in case the client wants to inspect the config they have so far-----------
public WebBrowserType getBrowserType() {
return browserType;
}
public String getBaseTestUrl() {
return baseTestUrl;
}
public TimeoutsConfig getTimeoutsConfig() {
return timeoutsConfig;
}
public Optional getWebDriverPath() {
return webDriverPath;
}
public Optional getBrowserBinaryPath() {
return browserBinaryPath;
}
public Optional> getOptions() {
return options;
}
/**
* Get a LocalBrowserBuilder for the given browser and base URL for the webapp you are testing against.
* @param browserType - type of Browser, either CHROME, FIREFOX, or IE
* @param baseTestUrl - base URL for your webapp, e.g. http://my.site.com/base
*/
public static LocalBrowserBuilder getBuilder(WebBrowserType browserType, String baseTestUrl) {
return new LocalBrowserBuilder(browserType, baseTestUrl);
}
/**
* Get a LocalBrowserBuilder for CHROME and base URL for the webapp you are testing against.
* @param baseTestUrl - base URL for your webapp, e.g. http://my.site.com/base
*/
public static LocalBrowserBuilder getChromeBuilder(String baseTestUrl) {
return new LocalBrowserBuilder(WebBrowserType.CHROME, baseTestUrl);
}
/**
* Get a LocalBrowserBuilder for FIREFOX and base URL for the webapp you are testing against.
* @param baseTestUrl - base URL for your webapp, e.g. http://my.site.com/base
*/
public static LocalBrowserBuilder getFirefoxBuilder(String baseTestUrl) {
return new LocalBrowserBuilder(WebBrowserType.FIREFOX, baseTestUrl);
}
/**
* Get a LocalBrowserBuilder for IE and base URL for the webapp you are testing against.
* @param baseTestUrl - base URL for your webapp, e.g. http://my.site.com/base
*/
public static LocalBrowserBuilder getInternetExplorerBuilder(String baseTestUrl) {
return new LocalBrowserBuilder(WebBrowserType.IE, baseTestUrl);
}
public WebBrowser build() throws FrameworkWebDriverException {
logger.info("Building Local Browser with the following config: \n{}", toString());
WebBrowser browser;
switch (browserType) {
case FIREFOX:
browser = new FirefoxBrowser(baseTestUrl, timeoutsConfig, webDriverPath, browserBinaryPath, Optional.empty(), getBrowserLocale(), getStartWindowWidth(), getStartWindowHeight(), Optional.empty());
break;
case CHROME:
browser = new ChromeBrowser(baseTestUrl, timeoutsConfig, webDriverPath, browserBinaryPath, Optional.empty(), getBrowserLocale(), getStartWindowWidth(), getStartWindowHeight(),
getBrowserLogLevel(), getBrowserLogFile(), Optional.empty(), options);
break;
case IE:
browser = new InternetExplorerBrowser(baseTestUrl, timeoutsConfig, webDriverPath, browserBinaryPath, Optional.empty(), getBrowserLocale(), getStartWindowWidth(), getStartWindowHeight(),
getBrowserLogLevel(), getBrowserLogFile(), Optional.empty());
break;
case SAFARI:
browser = new SafariBrowser(baseTestUrl, timeoutsConfig, webDriverPath, browserBinaryPath, Optional.empty(), getBrowserLocale(), getStartWindowWidth(), getStartWindowHeight(),
getBrowserLogLevel(), getBrowserLogFile(), Optional.empty());
break;
default:
throw new IllegalArgumentException("Only Firefox, Chrome, and IE are currently supported!");
}
browser.initializeBrowser();
return browser;
}
public LocalBrowserBuilder withTimeoutsConfig(TimeoutsConfig timeoutsConfig) {
this.timeoutsConfig = timeoutsConfig == null ? TimeoutsConfig.defaultTimeoutsConfig() : timeoutsConfig;
return this;
}
public LocalBrowserBuilder withWebDriverPath(String pathToWebDriver) {
this.webDriverPath = Optional.ofNullable(pathToWebDriver);
return this;
}
public LocalBrowserBuilder withBrowserBinaryPath(String pathToBrowserBinary) {
this.browserBinaryPath = Optional.ofNullable(pathToBrowserBinary);
return this;
}
public LocalBrowserBuilder withBrowserLocale(String browserLocale) {
this.setBrowserLocale(Optional.ofNullable(browserLocale));
return this;
}
public LocalBrowserBuilder withStartWindowWidth(Integer startWindowWidth) {
this.setStartWindowWidth(Optional.ofNullable(startWindowWidth));
return this;
}
public LocalBrowserBuilder withStartWindowHeight(Integer startWindowHeight) {
this.setStartWindowHeight(Optional.ofNullable(startWindowHeight));
return this;
}
public LocalBrowserBuilder withBrowserLogLevel(Level browserLogLevel) {
this.setBrowserLogLevel(Optional.ofNullable(browserLogLevel));
return this;
}
public LocalBrowserBuilder withBrowserLogFile(String browserLogFile) {
this.setBrowserLogFile(Optional.ofNullable(browserLogFile));
return this;
}
public LocalBrowserBuilder withOptions(List options) {
this.options = Optional.ofNullable(options);
return this;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this)
.add("browserType", browserType)
.add("baseTestUrl", baseTestUrl)
.add("webDriverPath", webDriverPath)
.add("browserBinaryPath", browserBinaryPath)
.add("browserLocale", getBrowserLocale())
.add("startWindowWidth", getStartWindowWidth())
.add("startWindowHeight", getStartWindowHeight())
.add("browserLogLevel", getBrowserLogLevel())
.add("browserLogFile", getBrowserLogFile())
.add("options", options)
.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy