Last active
September 9, 2020 22:27
-
-
Save timothyshort/f92f286df7bcff18b796e5cfc97c3822 to your computer and use it in GitHub Desktop.
This class generates a WebDriver
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* 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