Skip to content

Commit 43e374e

Browse files
committed
Added Driver classes
1 parent ecd2e85 commit 43e374e

File tree

3 files changed

+93
-0
lines changed

3 files changed

+93
-0
lines changed

pom.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@
1313
<artifactId>java-selenium-framework</artifactId>
1414
<version>1.0-SNAPSHOT</version>
1515

16+
<developers>
17+
<developer>
18+
<id>edinc</id>
19+
<name>Edin Cenanovic</name>
20+
<email>cenanovice@gmail.com</email>
21+
</developer>
22+
</developers>
23+
1624
<dependencies>
1725
<dependency>
1826
<groupId>org.seleniumhq.selenium</groupId>

src/main/java/driver/Driver.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package driver;
2+
3+
import org.openqa.selenium.WebDriver;
4+
import org.openqa.selenium.WebElement;
5+
import org.openqa.selenium.support.PageFactory;
6+
import org.openqa.selenium.support.ui.ExpectedConditions;
7+
import org.openqa.selenium.support.ui.WebDriverWait;
8+
9+
public class Driver {
10+
11+
WebDriver driver;
12+
13+
public Driver(WebDriver driver) {
14+
15+
PageFactory.initElements(driver, this);
16+
this.driver = driver;
17+
}
18+
19+
private static ThreadLocal<WebDriver> webDriver = new ThreadLocal<>();
20+
21+
public static WebDriver getDriver() {
22+
23+
return webDriver.get();
24+
}
25+
26+
public static void setWebDriver(WebDriver driver) {
27+
28+
webDriver.set(driver);
29+
}
30+
31+
protected void waitForElement(WebElement element) {
32+
33+
WebDriverWait wait = new WebDriverWait(driver, 15);
34+
WebElement target = wait.until(ExpectedConditions.visibilityOf(element));
35+
}
36+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
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

Comments
 (0)