@@ -210,7 +210,12 @@ internal fun setupWebDriver(browser: String = ""): RemoteWebDriverSupplier {
210210 setupEdgeDriver(folder = folder)
211211 } else {
212212 { config ->
213- if (config.factory.isNotBlank()) System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
213+ try {
214+ org.openqa.selenium.remote.http.HttpClient .Factory .create(config.factory)
215+ System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
216+ } catch (_: Throwable ) {
217+ //
218+ }
214219 val options = EdgeOptions ().also (config.toConsumer())
215220 val port = try {
216221 PortProber .findFreePort()
@@ -232,7 +237,12 @@ internal fun setupWebDriver(browser: String = ""): RemoteWebDriverSupplier {
232237 setupChromeDriver(folder = folder, chromium = browser.contains(other = " Chromium" , ignoreCase = true ))
233238 } else {
234239 { config ->
235- if (config.factory.isNotBlank()) System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
240+ try {
241+ org.openqa.selenium.remote.http.HttpClient .Factory .create(config.factory)
242+ System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
243+ } catch (_: Throwable ) {
244+ // ignore
245+ }
236246 val options = ChromeOptions ().also (config.toConsumer())
237247 val port = try {
238248 PortProber .findFreePort()
@@ -255,7 +265,12 @@ internal fun setupWebDriver(browser: String = ""): RemoteWebDriverSupplier {
255265 setupFirefoxDriver(folder = folder)
256266 } else {
257267 { config ->
258- if (config.factory.isNotBlank()) System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
268+ try {
269+ org.openqa.selenium.remote.http.HttpClient .Factory .create(config.factory)
270+ System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
271+ } catch (_: Throwable ) {
272+ // ignore
273+ }
259274 val options = FirefoxOptions ().also (config.toConsumer())
260275 val port = try {
261276 PortProber .findFreePort()
@@ -333,7 +348,12 @@ internal fun setupEdgeDriver(folder: File): RemoteWebDriverSupplier {
333348 driver.setExecutable(true )
334349
335350 return { config ->
336- if (config.factory.isNotBlank()) System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
351+ try {
352+ org.openqa.selenium.remote.http.HttpClient .Factory .create(config.factory)
353+ System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
354+ } catch (_: Throwable ) {
355+ // ignore
356+ }
337357 val options = EdgeOptions ().also (config.toConsumer())
338358 if (binary.exists()) options.setBinary(binary)
339359 val port = try {
@@ -416,7 +436,12 @@ internal fun fetchChromeDriver(folder: File, version: String): RemoteWebDriverSu
416436
417437 return { config ->
418438 val options = ChromeOptions ().also (config.toConsumer())
419- if (config.factory.isNotBlank()) System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
439+ try {
440+ org.openqa.selenium.remote.http.HttpClient .Factory .create(config.factory)
441+ System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
442+ } catch (_: Throwable ) {
443+ // ignore
444+ }
420445 val binary = File (System .getProperty(CHROME_BROWSER_BINARY , " chrome.exe" ))
421446 if (binary.exists()) options.setBinary(binary)
422447 val port = try {
@@ -559,7 +584,12 @@ internal fun setupChromeDriver(folder: File, chromium: Boolean): RemoteWebDriver
559584 driver.setExecutable(true )
560585
561586 return { config ->
562- if (config.factory.isNotBlank()) System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
587+ try {
588+ org.openqa.selenium.remote.http.HttpClient .Factory .create(config.factory)
589+ System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
590+ } catch (_: Throwable ) {
591+ // ignore
592+ }
563593 val options = ChromeOptions ().also (config.toConsumer())
564594 if (binary.exists()) options.setBinary(binary)
565595 val port = try {
@@ -670,7 +700,12 @@ internal fun setupFirefoxDriver(folder: File): RemoteWebDriverSupplier {
670700 driver.setExecutable(true )
671701
672702 return { config ->
673- if (config.factory.isNotBlank()) System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
703+ try {
704+ org.openqa.selenium.remote.http.HttpClient .Factory .create(config.factory)
705+ System .setProperty(WEBDRIVER_HTTP_FACTORY , config.factory)
706+ } catch (_: Throwable ) {
707+ // ignore
708+ }
674709 val options = FirefoxOptions ().also (config.toConsumer())
675710 if (binary.exists()) options.setBinary(binary.toPath())
676711 val port = try {
0 commit comments