public WebDriver initializeWebEnvironment(Properties objConfig)
{
try
{
String browser = objConfig.getProperty("web.browser").trim().toLowerCase();
switch (browser)
{
case "ie": // If specified browser is Internet Explorer
System.setProperty("webdriver.ie.driver",System.getProperty("user.dir") + objConfig.getProperty("webdriver.ie.driver").trim());
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "IE");
capabilities.setCapability(CapabilityType.VERSION, "11");
capabilities.setCapability("requireWindowFocus", true);
capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, false);
capabilities.setCapability("ie.ensureCleanSession", true);
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
capabilities.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS, true);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
webDriver = new InternetExplorerDriver(capabilities);
// webDriver = new InternetExplorerDriver();
break;
case "firefox": // If specified browser is Firefox
System.setProperty("webdriver.gecko.driver",System.getProperty("user.dir") + objConfig.getProperty("webdriver.gecko.driver").trim());
// System.setProperty("webdriver.firefox.marionette",System.getProperty("user.dir") + objConfig.getProperty("webdriver.gecko.driver").trim());
webDriver = new FirefoxDriver();
break;
case "chrome": // If specified browser is Chrome
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + objConfig.getProperty("webdriver.chrome.driver").trim());
String downloadFilepath =System.getProperty("user.dir")+objConfig.getProperty("downloads.path").trim();
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(ChromeOptions.CAPABILITY, options);
webDriver = new ChromeDriver(cap);
break;
default:
webDriver = new FirefoxDriver();
}
// Set the minimum width and height to ensure there is no unintentional overlap of UI elements
webDriver.manage().window().maximize();
// Wait for ui-elements to potentially load, up to a second.
webDriver.manage().timeouts().implicitlyWait(Integer.parseInt(objConfig.getProperty("driver.implicitlyWait").trim()), TimeUnit.SECONDS);
// limit how much time a driver should wait for a page to load
webDriver.manage().timeouts().pageLoadTimeout(Integer.parseInt(objConfig.getProperty("driver.pageLoadTimeout").trim()), TimeUnit.SECONDS);
return webDriver;
}
catch (Exception exception)
{
exception.printStackTrace();
return null;
}
}