docs: @Before
  	public final void setUp() {
  		fileUtil = new FileUtils();
  		xmlUtils = new XMLUtils(fileUtil);
  		httpUtils = new HttpCallUtils(fileUtil);
  
  		fileUtil.loadPropertiesBundle("selenium");
  
  		String browserName = fileUtil
  				.getPropertyAsString("selenium", "browser");
  		String browserVersion = fileUtil.getPropertyAsString("selenium",
  				"browserVersion");
  		String runMode = fileUtil.getPropertyAsString("selenium", "runMode");
  		String proxyHost = fileUtil
  				.getPropertyAsString("selenium", "proxyHost");
  		String proxyPort = fileUtil
  				.getPropertyAsString("selenium", "proxyPort");
  		String gridUrl = fileUtil.getPropertyAsString("selenium", "gridUrl");
  		String platform = fileUtil.getPropertyAsString("selenium", "platform");
  		String userAgent = fileUtil
  				.getPropertyAsString("selenium", "userAgent");
  		String noProxyFor = fileUtil.getPropertyAsString("selenium",
  				"noProxyFor");
  		String screenShotFolder = fileUtil.getPropertyAsString("selenium",
  				"screenshotFolder");
  
  		boolean assumeAllCertsUntrusted = fileUtil.getPropertyAsBoolean(
  				"selenium", "assumeAllCertsUntrusted");
  		String jsEnabled = fileUtil
  				.getPropertyAsString("selenium", "jsEnabled");
  		boolean flakiness = fileUtil.getPropertyAsBoolean("selenium",
  				"flakiness");
  		boolean acceptAllCerts = fileUtil.getPropertyAsBoolean("selenium",
  				"acceptAllCerts");
  		String profileLocation = fileUtil.getPropertyAsString("selenium",
  				"browserProfile");
  		String takeScreenshots = fileUtil.getPropertyAsString("selenium",
  				"takeScreenshots");
  
  		boolean jsEnabledBoolean = Boolean.getBoolean(jsEnabled);
  		boolean takeScreenshotsBoolean = Boolean.getBoolean(takeScreenshots);
  
  		/**
  		 * assign default values if these are null
  		 */
  		if (isPropertyNotSet(profileLocation)) {
  			profileLocation = null;
  		}
  		if (isPropertyNotSet(userAgent)) {
  			userAgent = null;
  		}
  
  		if (isPropertyNotSet(screenShotFolder)) {
  			screenShotFolder = Constants.DEFAULT_SCREENSHOT_FOLDER;
  		}
  
  		if (isPropertyNotSet(noProxyFor)) {
  			noProxyFor = null;
  		}
  
  		if (isPropertyNotSet(browserVersion)) {
  			browserVersion = null;
  		}
  
  		if (isPropertyNotSet(browserName)) {
  			browserName = Constants.Browsers.HTML_UNIT;
  		}
  
  		if (isPropertyNotSet(runMode)) {
  			runMode = Constants.RunMode.NORMAL;
  		}
  
  		if (isPropertyNotSet(platform)) {
  			platform = Constants.Platform.WINDOWS;
  		}
  
  		if (isPropertyNotSet(proxyHost)) {
  			proxyHost = null;
  		}
  
  		if (isPropertyNotSet(proxyPort)) {
  			proxyPort = null;
  		}
  
  		if (isPropertyNotSet(jsEnabled)) {
  			jsEnabledBoolean = true;
  		}
  
  		if (isPropertyNotSet(takeScreenshots)) {
  			takeScreenshotsBoolean = true;
  		}
  
  		screen.setTakeScreenshot(takeScreenshotsBoolean);
  		screen.setScreenshotFolder(new File(screenShotFolder));
  
  		WebDriverHelper.Builder driverBuilder = new WebDriverHelper.Builder();
  		driver = driverBuilder.browser(browserName).runMode(runMode)
  				.proxy(proxyHost, proxyPort, noProxyFor)
  				.acceptAllCerts(acceptAllCerts).grid(gridUrl)
  				.platform(platform).flackinessForIe(flakiness)
  				.profileLocation(profileLocation).userAgent(userAgent)
  				.jsEnabled(jsEnabledBoolean).browserVersion(browserVersion)
  				.assumeAllCertsUtrusted(assumeAllCertsUntrusted).buildDriver();
  
  		LOG.info("Driver returned: " + driver);
  
  		helper = new WebDriverHelper(driver);
  		screen.setDriver(driver);
  
  		this.doAdditionalSetUp();
  	}