11package browserstack .driverconfig ;
22
3- import com .fasterxml .jackson .databind .ObjectMapper ;
4- import com .fasterxml .jackson .dataformat .yaml .YAMLFactory ;
3+ import java .io .IOException ;
4+ import java .net .MalformedURLException ;
5+ import java .net .URL ;
6+ import java .nio .file .Paths ;
7+ import java .util .Arrays ;
8+ import java .util .LinkedHashMap ;
9+ import java .util .List ;
10+ import java .util .Map ;
11+
512import org .apache .commons .lang3 .StringUtils ;
613import org .openqa .selenium .WebDriver ;
714import org .openqa .selenium .chrome .ChromeDriver ;
2128import org .slf4j .Logger ;
2229import org .slf4j .LoggerFactory ;
2330
24- import java .io .IOException ;
25- import java .net .MalformedURLException ;
26- import java .net .URL ;
27- import java .nio .file .Paths ;
28- import java .util .Arrays ;
29- import java .util .LinkedHashMap ;
30- import java .util .List ;
31- import java .util .Map ;
31+ import com .fasterxml .jackson .databind .ObjectMapper ;
32+ import com .fasterxml .jackson .dataformat .yaml .YAMLFactory ;
3233
3334public class WebDriverFactory {
3435
@@ -95,25 +96,29 @@ private WebDriverConfiguration parseWebDriverConfig() {
9596 return webDriverConfiguration ;
9697 }
9798
98- public WebDriver createWebDriverForPlatform (Platform platform , String testName , String [] specificCapabilitiesKeys ) throws MalformedURLException {
99+ public WebDriver createWebDriverForPlatform (Platform platform , String testName , String [] specificCapabilitiesKeys ) {
99100 WebDriver webDriver = null ;
100- Map <String , Object > specificCapabilitiesMap = new LinkedHashMap <>();
101- if (webDriverConfiguration .getSpecificCapabilities () != null && specificCapabilitiesKeys .length > 0 ) {
102- Arrays .stream (specificCapabilitiesKeys )
103- .forEach (specificCapabilityKey -> webDriverConfiguration
104- .getSpecificCapabilities ()
105- .getSpecificCapabilities (specificCapabilityKey )
106- .forEach (caps -> caps .getCapabilityMap ().forEach (specificCapabilitiesMap ::put )));
107- }
108- switch (this .webDriverConfiguration .getDriverType ()) {
109- case onPremDriver :
110- webDriver = createOnPremWebDriver (platform , specificCapabilitiesMap );
111- break ;
112- case onPremGridDriver :
113- webDriver = createOnPremGridWebDriver (platform , specificCapabilitiesMap );
114- break ;
115- case cloudDriver :
116- webDriver = createRemoteWebDriver (platform , testName , specificCapabilitiesMap );
101+ try {
102+ Map <String , Object > specificCapabilitiesMap = new LinkedHashMap <>();
103+ if (webDriverConfiguration .getSpecificCapabilities () != null && specificCapabilitiesKeys .length > 0 ) {
104+ Arrays .stream (specificCapabilitiesKeys )
105+ .forEach (specificCapabilityKey -> webDriverConfiguration
106+ .getSpecificCapabilities ()
107+ .getSpecificCapabilities (specificCapabilityKey )
108+ .forEach (caps -> caps .getCapabilityMap ().forEach (specificCapabilitiesMap ::put )));
109+ }
110+ switch (this .webDriverConfiguration .getDriverType ()) {
111+ case onPremDriver :
112+ webDriver = createOnPremWebDriver (platform , specificCapabilitiesMap );
113+ break ;
114+ case onPremGridDriver :
115+ webDriver = createOnPremGridWebDriver (platform , specificCapabilitiesMap );
116+ break ;
117+ case cloudDriver :
118+ webDriver = createRemoteWebDriver (platform , testName , specificCapabilitiesMap );
119+ }
120+ } catch (Throwable throwable ) {
121+ throw new Error (throwable );
117122 }
118123 return webDriver ;
119124 }
@@ -126,6 +131,10 @@ public DriverType getDriverType() {
126131 return webDriverConfiguration .getDriverType ();
127132 }
128133
134+ public boolean isCloudDriver () {
135+ return webDriverConfiguration .getDriverType () == DriverType .cloudDriver ;
136+ }
137+
129138 public List <Platform > getPlatforms () {
130139 return this .webDriverConfiguration .getActivePlatforms ();
131140 }
@@ -262,4 +271,4 @@ private String createBuildName(String buildPrefix) {
262271 return buildName + "-" + buildSuffix ;
263272 }
264273
265- }
274+ }
0 commit comments