33import io .nsingla .constants .SeleniumConstants ;
44import io .nsingla .selenium .enums .TestMode ;
55
6- import io .github .bonigarcia .wdm .WebDriverManager ;
76import org .apache .commons .lang3 .StringUtils ;
87import org .openqa .selenium .MutableCapabilities ;
98import org .openqa .selenium .PageLoadStrategy ;
10- import org .openqa .selenium .Proxy ;
119import org .openqa .selenium .UnexpectedAlertBehaviour ;
1210import org .openqa .selenium .WebDriver ;
1311import org .openqa .selenium .chrome .ChromeDriver ;
1412import org .openqa .selenium .chrome .ChromeOptions ;
13+ import org .openqa .selenium .edge .EdgeDriver ;
1514import org .openqa .selenium .edge .EdgeOptions ;
15+ import org .openqa .selenium .firefox .FirefoxDriver ;
1616import org .openqa .selenium .firefox .FirefoxDriverLogLevel ;
1717import org .openqa .selenium .firefox .FirefoxOptions ;
1818import org .openqa .selenium .firefox .FirefoxProfile ;
19+ import org .openqa .selenium .htmlunit .HtmlUnitDriver ;
1920import org .openqa .selenium .logging .LogType ;
2021import org .openqa .selenium .logging .LoggingPreferences ;
2122import org .openqa .selenium .remote .AbstractDriverOptions ;
2223import org .openqa .selenium .remote .Browser ;
2324import org .openqa .selenium .remote .CapabilityType ;
2425import org .openqa .selenium .remote .LocalFileDetector ;
2526import org .openqa .selenium .remote .RemoteWebDriver ;
27+ import org .openqa .selenium .safari .SafariDriver ;
2628import org .openqa .selenium .safari .SafariOptions ;
2729import org .slf4j .Logger ;
2830import org .slf4j .LoggerFactory ;
@@ -140,9 +142,20 @@ private WebDriver getLocalDriver() {
140142 if (!downloaDir .exists ()) {
141143 downloaDir .mkdir ();
142144 }
143- ChromeOptions options = createDefaultDriverOptions (ChromeOptions .class );
144- setDefaultChromeOptions (options );
145- return new ChromeDriver (options );
145+ AbstractDriverOptions options = getDriverOptions ();
146+ if (Browser .FIREFOX .equals (browser )) {
147+ return new FirefoxDriver ((FirefoxOptions ) options );
148+ } else if (Browser .CHROME .equals (browser )) {
149+ return new ChromeDriver ((ChromeOptions ) options );
150+ } else if (Browser .SAFARI .equals (browser )) {
151+ return new SafariDriver ((SafariOptions ) options );
152+ } else if (Browser .EDGE .equals (browser )) {
153+ return new EdgeDriver ((EdgeOptions ) options );
154+ } else if (Browser .HTMLUNIT .equals (browser )) {
155+ return new HtmlUnitDriver ();
156+ } else {
157+ throw new RuntimeException ("Cannot start a webdriver session for browser: " + browser );
158+ }
146159 }
147160
148161 private RemoteWebDriver getRemoteDriver (String server ) throws MalformedURLException {
@@ -244,4 +257,4 @@ private void setDefaultFirefoxOptions(FirefoxOptions options) {
244257 public WebDriver getDriver () {
245258 return driver ;
246259 }
247- }
260+ }
0 commit comments