|
| 1 | +package driver; |
| 2 | + |
| 3 | +import org.openqa.selenium.WebDriver; |
| 4 | +import org.openqa.selenium.chrome.ChromeDriver; |
| 5 | +import org.openqa.selenium.chrome.ChromeOptions; |
| 6 | +import org.openqa.selenium.firefox.FirefoxDriver; |
| 7 | +import org.openqa.selenium.firefox.FirefoxOptions; |
| 8 | +import org.openqa.selenium.remote.DesiredCapabilities; |
| 9 | +import org.openqa.selenium.remote.RemoteWebDriver; |
| 10 | + |
| 11 | +import java.net.MalformedURLException; |
| 12 | +import java.net.URL; |
| 13 | + |
| 14 | +public class DriverManager { |
| 15 | + |
| 16 | + private static final String HEADLESS = "headless"; |
| 17 | + public static WebDriver createInstance(String browserName, String appUrl) throws MalformedURLException { |
| 18 | + final String browserMode = System.getProperty("mode"); |
| 19 | + WebDriver driver = null; |
| 20 | + if(browserName.toLowerCase().contains("firefox")) { |
| 21 | + System.setProperty("webdriver.gecko.driver", "driver/osx/geckodriver"); |
| 22 | + if(browserMode !=null && browserMode.equals(HEADLESS)){ |
| 23 | + FirefoxOptions firefoxOptions = new FirefoxOptions(); |
| 24 | + firefoxOptions.addArguments("--headless"); |
| 25 | + driver = new FirefoxDriver(firefoxOptions); |
| 26 | + }else { |
| 27 | + driver = new FirefoxDriver(); |
| 28 | + } |
| 29 | + |
| 30 | + } |
| 31 | + if(browserName.toLowerCase().contains("chrome")) { |
| 32 | + System.setProperty("webdriver.chrome.driver", "driver/osx/chromedriver"); |
| 33 | + if(browserMode !=null && browserMode.equals(HEADLESS)){ |
| 34 | + ChromeOptions chromeOptions = new ChromeOptions(); |
| 35 | + chromeOptions.addArguments("--headless"); |
| 36 | + driver = new ChromeDriver(chromeOptions); |
| 37 | + }else { |
| 38 | + driver = new ChromeDriver(); |
| 39 | + } |
| 40 | + |
| 41 | + } |
| 42 | + if(browserName.toLowerCase().contains("zalenium")) { |
| 43 | + DesiredCapabilities cap = DesiredCapabilities.chrome(); |
| 44 | + driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), cap); |
| 45 | + } |
| 46 | + driver.navigate().to(appUrl); |
| 47 | + return driver; |
| 48 | + } |
| 49 | +} |
0 commit comments