public class DriverFactory {
public WebDriver driver;
public static ThreadLocal<WebDriver> tlDriver = new ThreadLocal<>();
/**
* This method is used to initialize the threadlocal driver on the basis of given
* browser
*
* @param browser
* @return this will return tldriver.
*/
public WebDriver init_driver(String browser) {
System.out.println("browser value is: " + browser);
if (browser.equals("chrome")) {
WebDriverManager.chromedriver().setup();
tlDriver.set(new ChromeDriver());
} else if (browser.equals("firefox")) {
WebDriverManager.firefoxdriver().setup();
tlDriver.set(new FirefoxDriver());
} else if (browser.equals("safari")) {
tlDriver.set(new SafariDriver());
} else {
System.out.println("Please pass the correct browser value: " + browser);
}
getDriver().manage().deleteAllCookies();
getDriver().manage().window().maximize();
return getDriver();
}
/**
* this is used to get the driver with ThreadLocal
*
* @return
*/
public static synchronized WebDriver getDriver() {
return tlDriver.get();
}
}