Skip to content

Instantly share code, notes, and snippets.

@timothyshort
Last active September 9, 2020 22:27
Show Gist options
  • Save timothyshort/f92f286df7bcff18b796e5cfc97c3822 to your computer and use it in GitHub Desktop.
Save timothyshort/f92f286df7bcff18b796e5cfc97c3822 to your computer and use it in GitHub Desktop.
This class generates a WebDriver
/*
* This class returns a WebDriver object using 3 overloaded .get() methods:
* 1. get() - default
* 2. get(String browserType)
* 3. get(String browserType, String webURL)
*/
public class DriverFactory {
string rootFolder = "C:\\Selenium\\Software\\";
// Write a function that returns a default WebDriver (user does not specify)
public static WebDriver get() {
WebDriver driver;
System.out.println("Opening chrome browser");
System.setProperty("webdriver.chrome.driver", rootFolder + chromedriver.exe");
driver = new ChromeDriver();
return driver;
}
// Write a function that returns a WebDriver when user sends desired browser
public static WebDriver get(String browserType) {
WebDriver driver;
if (browserType.equalsIgnoreCase("Chrome")) {
System.out.println("Opening chrome browser");
System.setProperty("webdriver.chrome.driver", rootFolder + chromedriver.exe");
driver = new ChromeDriver();
}
else if (browserType.equalsIgnoreCase("Firefox")) {
System.out.println("Opening Firefox browser");
System.setProperty("webdriver.gecko.driver", rootFolder + geckodriver.exe");
driver = new FirefoxDriver();
}
else if (browserType.equalsIgnoreCase("IE")) {
System.out.println("Opening IE browser");
System.setProperty("webdriver.ie.driver", rootFolder + IEDriverServer.exe");
driver = new InternetExplorerDriver();
}
else {
System.out.println("Could not understand input. Will open Chrome as default");
System.setProperty("webdriver.chrome.driver", rootFolder + chromedriver.exe");
driver = new ChromeDriver();
}
setConfigs(driver);
return driver;
}
// Exercise: write one more overloaded method, that includes the URL the user wants to test
public static WebDriver get(String browserType, String webURL) {
WebDriver driver;
if (browserType.equalsIgnoreCase("Chrome")) {
System.out.println("Opening chrome browser");
System.setProperty("webdriver.chrome.driver", rootFolder + chromedriver.exe");
driver = new ChromeDriver();
}
else if (browserType.equalsIgnoreCase("Firefox")) {
System.out.println("Opening Firefox browser");
System.setProperty("webdriver.gecko.driver", rootFolder + geckodriver.exe");
driver = new FirefoxDriver();
}
else if (browserType.equalsIgnoreCase("IE")) {
System.out.println("Opening IE browser");
System.setProperty("webdriver.ie.driver", rootFolder + IEDriverServer.exe");
driver = new InternetExplorerDriver();
}
else {
System.out.println("Could not understand input. Will open Chrome as default");
System.setProperty("webdriver.chrome.driver", rootFolder + chromedriver.exe");
driver = new ChromeDriver();
}
driver.get(webURL);
setConfigs(driver);
return driver;
}
// This function returns a WebDriver with maximized window and 3 second wait
private static void setConfigs(WebDriver driver) {
System.out.println("Setup basic WebDriver configurations");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment