Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 6de0836

Browse files
committed
Enhanced TestBase
1 parent 1fa3a59 commit 6de0836

File tree

7 files changed

+27
-16
lines changed

7 files changed

+27
-16
lines changed

‎pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<properties>
1515
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1616
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
17-
<java.version>12</java.version>
17+
<java.version>10</java.version>
1818
<maven.compiler.source>${java.version}</maven.compiler.source>
1919
<maven.compiler.target>${java.version}</maven.compiler.target>
2020
<junit.jupiter.version>5.4.2</junit.jupiter.version>
@@ -31,6 +31,11 @@
3131
<artifactId>testng</artifactId>
3232
<version>6.14.3</version>
3333
</dependency>
34+
<dependency>
35+
<groupId>io.github.bonigarcia</groupId>
36+
<artifactId>webdrivermanager</artifactId>
37+
<version>3.6.2</version>
38+
</dependency>
3439
</dependencies>
3540

3641
<build>

‎src/main/java/org/sayem/browser/Adapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@
1010
*/
1111
public interface Adapter<T extends WebDriver> {
1212

13-
Browser<T> get();
13+
Browser<T> browser();
1414
}

‎src/main/java/org/sayem/browser/BrowserType.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ public enum BrowserType {
1414
CHROME(ChromeBrowser::new),
1515
FIREFOX(FirefoxBrowser::new);
1616

17-
public final Adapter<? extends WebDriver>browser;
17+
public final ThreadLocal<Adapter<? extends WebDriver>> driver = newThreadLocal<>();
1818

19-
BrowserType(Supplier<Adapter<? extends WebDriver>> browser) {
20-
this.browser = browser.get();
19+
BrowserType(Supplier<Adapter<? extends WebDriver>> driver) {
20+
this.driver.set(requireNonNull(driver).get());
2121
}
2222
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package org.sayem.browser;
22

3+
import io.github.bonigarcia.wdm.WebDriverManager;
34
import org.openqa.selenium.chrome.ChromeDriver;
45

56
import java.net.URL;
67
import java.util.function.Supplier;
78

89
public class ChromeBrowser implements Adapter<ChromeDriver> {
910
@Override
10-
public Browser<ChromeDriver> get() {
11+
public Browser<ChromeDriver> browser() {
12+
WebDriverManager.chromedriver().setup();
1113
return new BrowserAdapter<>(new ChromeDriver());
1214
}
1315
}
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package org.sayem.browser;
22

3+
import io.github.bonigarcia.wdm.WebDriverManager;
34
import org.openqa.selenium.firefox.FirefoxDriver;
45

56
public class FirefoxBrowser implements Adapter<FirefoxDriver> {
67

78
@Override
8-
public Browser<FirefoxDriver> get() {
9+
public Browser<FirefoxDriver> browser() {
10+
WebDriverManager.firefoxdriver().setup();
911
return new BrowserAdapter<>(new FirefoxDriver());
1012
}
1113
}

‎src/main/java/org/sayem/config/TestBase.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,10 @@
66
import org.testng.annotations.AfterMethod;
77
import org.testng.annotations.Listeners;
88

9-
import static org.sayem.browser.BrowserType.CHROME;
10-
import static org.sayem.browser.BrowserType.FIREFOX;
9+
import java.util.stream.Stream;
10+
11+
import static java.lang.String.valueOf;
12+
import static org.sayem.browser.BrowserType.values;
1113

1214
@Listeners({BrowserListener.class})
1315
public class TestBase {
@@ -16,16 +18,16 @@ public class TestBase {
1618

1719
@AfterMethod
1820
public void tearDown() {
19-
browser.driver().quit();
21+
browser.driver().close();
2022
}
2123

2224
@SuppressWarnings("unchecked")
2325
protected <T> T getDriver() {
24-
if (System.getProperty("browser").equalsIgnoreCase(String.valueOf(CHROME))) {
25-
browser = CHROME.browser.get();
26-
} else {
27-
browser = FIREFOX.browser.get();
28-
}
26+
browser = Stream.of(values())
27+
.parallel()
28+
.filter(s -> s.name()
29+
.equalsIgnoreCase(System.getProperty("browser")))
30+
.findFirst().get().driver.get().browser();
2931
return (T) browser;
3032
}
3133
}

‎src/test/java/org/sayem/testcases/ChromeIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
public class ChromeIT extends TestBase {
1111

12-
@Chrome
12+
@Firefox
1313
@Test
1414
public void googleSearchTest(){
1515
new HomePage(getDriver())

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /