From 7813a36b34fe8114df4a4fcb97d2aee66f32b9ae Mon Sep 17 00:00:00 2001 From: bhecquet Date: Tue, 28 Apr 2026 08:57:08 +0200 Subject: [PATCH 1/3] #17358: handle system proxy setting for arguments passed to selenium manager --- .../selenium/remote/service/DriverFinder.java | 3 +- .../remote/service/DriverFinderTest.java | 56 +++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/java/src/org/openqa/selenium/remote/service/DriverFinder.java b/java/src/org/openqa/selenium/remote/service/DriverFinder.java index 4263a12e8c195..2719759ca9159 100644 --- a/java/src/org/openqa/selenium/remote/service/DriverFinder.java +++ b/java/src/org/openqa/selenium/remote/service/DriverFinder.java @@ -153,7 +153,8 @@ private List toArguments() { Proxy proxy = Proxy.extractFrom(options); if (proxy != null && proxy.getProxyType() != Proxy.ProxyType.DIRECT - && proxy.getProxyType() != Proxy.ProxyType.AUTODETECT) { + && proxy.getProxyType() != Proxy.ProxyType.AUTODETECT + && proxy.getProxyType() != Proxy.ProxyType.SYSTEM) { arguments.add("--proxy"); if (proxy.getSslProxy() != null) { arguments.add(proxy.getSslProxy()); diff --git a/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java b/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java index d1a6c8b572be1..e85c3efa7f76e 100644 --- a/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java +++ b/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java @@ -39,6 +39,7 @@ import org.openqa.selenium.Capabilities; import org.openqa.selenium.ImmutableCapabilities; import org.openqa.selenium.Proxy; +import org.openqa.selenium.Proxy.ProxyType; import org.openqa.selenium.manager.SeleniumManager; import org.openqa.selenium.manager.SeleniumManagerOutput.Result; import uk.org.webcompere.systemstubs.environment.EnvironmentVariables; @@ -193,6 +194,61 @@ void createsArgumentsForSeleniumManager() throws IOException { verifyNoMoreInteractions(seleniumManager); } + @Test + void createsArgumentsForSeleniumManagerWithSystemProxySettings() throws IOException { + createsArgumentsForSeleniumManagerWithProxySettings(ProxyType.SYSTEM); + } + + @Test + void createsArgumentsForSeleniumManagerWithAutodetectProxySettings() throws IOException { + createsArgumentsForSeleniumManagerWithProxySettings(ProxyType.AUTODETECT); + } + + @Test + void createsArgumentsForSeleniumManagerWithDirectProxySettings() throws IOException { + createsArgumentsForSeleniumManagerWithProxySettings(ProxyType.DIRECT); + } + + void createsArgumentsForSeleniumManagerWithProxySettings(ProxyType proxyType) throws IOException { + when(service.getExecutable()).thenReturn(null); + when(service.getDriverProperty()).thenReturn("property.selenium.manager.empty"); + when(service.getDriverEnvironmentVariable()) + .thenReturn("ENVIRONMENT_VARIABLE_IGNORES_SELENIUM_MANAGER"); + + Proxy proxy = new Proxy().setProxyType(proxyType); + Capabilities capabilities = + new ImmutableCapabilities( + "browserName", + "chrome", + "browserVersion", + "beta", + "proxy", + proxy, + "goog:chromeOptions", + Map.of("binary", browserFile.toString())); + DriverFinder finder = new DriverFinder(service, capabilities, seleniumManager); + + List arguments = new ArrayList<>(); + arguments.add("--browser"); + arguments.add("chrome"); + arguments.add("--browser-version"); + arguments.add("beta"); + arguments.add("--browser-path"); + arguments.add(browserFile.toString()); + Result result = new Result(0, "", driverFile.toString(), browserFile.toString()); + doReturn(result).when(seleniumManager).getBinaryPaths(arguments); + + assertThat(finder.getDriverPath()).isEqualTo(driverFile.toString()); + assertThat(finder.getBrowserPath()).isEqualTo(browserFile.toString()); + verify(service, times(1)).getExecutable(); + verify(service, times(1)).getDriverName(); + verify(service, times(1)).getDriverProperty(); + verify(service, times(1)).getDriverEnvironmentVariable(); + verifyNoMoreInteractions(service); + verify(seleniumManager, times(1)).getBinaryPaths(arguments); + verifyNoMoreInteractions(seleniumManager); + } + private Path createExecutableFile(String prefix) { Path driverFile = null; try { From cd9c5536493b5bda2147115488b3a17d1500fada Mon Sep 17 00:00:00 2001 From: bhecquet Date: Wed, 10 Jun 2026 11:17:25 +0200 Subject: [PATCH 2/3] Correct duplicate --- .../selenium/remote/service/DriverFinderTest.java | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java b/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java index 4c10cdc0dda39..efb3194f541fc 100644 --- a/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java +++ b/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java @@ -211,21 +211,6 @@ void createsArgumentsForSeleniumManagerWithDirectProxySettings() throws IOExcept createsArgumentsForSeleniumManagerWithProxySettings(ProxyType.DIRECT); } - @Test - void createsArgumentsForSeleniumManagerWithSystemProxySettings() throws IOException { - createsArgumentsForSeleniumManagerWithProxySettings(ProxyType.SYSTEM); - } - - @Test - void createsArgumentsForSeleniumManagerWithAutodetectProxySettings() throws IOException { - createsArgumentsForSeleniumManagerWithProxySettings(ProxyType.AUTODETECT); - } - - @Test - void createsArgumentsForSeleniumManagerWithDirectProxySettings() throws IOException { - createsArgumentsForSeleniumManagerWithProxySettings(ProxyType.DIRECT); - } - void createsArgumentsForSeleniumManagerWithProxySettings(ProxyType proxyType) throws IOException { when(service.getExecutable()).thenReturn(null); when(service.getDriverProperty()).thenReturn("property.selenium.manager.empty"); From e38b35b0779917687039f67857fb3da01ed2275c Mon Sep 17 00:00:00 2001 From: bhecquet Date: Tue, 23 Jun 2026 10:27:40 +0200 Subject: [PATCH 3/3] update formatting --- .../org/openqa/selenium/remote/service/DriverFinderTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java b/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java index efb3194f541fc..6a89fbb5176c9 100644 --- a/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java +++ b/java/test/org/openqa/selenium/remote/service/DriverFinderTest.java @@ -250,8 +250,7 @@ void createsArgumentsForSeleniumManagerWithProxySettings(ProxyType proxyType) th verify(seleniumManager, times(1)).getBinaryPaths(arguments); verifyNoMoreInteractions(seleniumManager); } - - + @SuppressWarnings("unchecked") void electronOptionsPassesElectronBrowserNameToSeleniumManager() throws IOException { when(service.getExecutable()).thenReturn(null);