JustPaste.it

package utils;

import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.PageFactory;
import pageObjects.Login_page;

import java.io.FileInputStream;
import java.util.Properties;
import java.util.concurrent.TimeUnit;

public class DriverFactory {
public static WebDriver driver;
public static Login_page loginPage;

public WebDriver getDriver() {
try {
// Read Config
Properties p = new Properties();
FileInputStream fi = new FileInputStream(System.getProperty("user.dir") + "/src/main/java/properties/config.properties");
p.load(fi);
String browserName = p.getProperty("browser");

switch (browserName) {

case "firefox":
// code
if (null == driver) {
// System.setProperty("webdriver.gecko.driver", Constant.GECKO_DRIVER_DIRECTORY);
// DesiredCapabilities capabilities = DesiredCapabilities.firefox();
// capabilities.setCapability("marionette", true);
// driver = new FirefoxDriver();
}
break;

case "chrome":
// code
if (null == driver) {
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.setHeadless(true);
driver = new ChromeDriver(options);
driver.manage().window().maximize();
}
break;

case "ie":
// code
if (null == driver) {
// DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
// System.setProperty("webdriver.ie.driver", Constant.IE_DRIVER_DIRECTORY);
// capabilities.setCapability("ignoreZoomSetting", true);
// driver = new InternetExplorerDriver(capabilities);
// driver.manage().window().maximize();
}
break;
}
} catch (Exception e) {
System.out.println("Unable to load browser: " + e.getMessage());
} finally {
assert driver != null;
driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
loginPage = PageFactory.initElements(driver, Login_page.class);
}
return driver;
}
}