Skip to content

Commit a929135

Browse files
committed
[java] Use environment variable to set driver locations
Related to #14045
1 parent 4243248 commit a929135

File tree

12 files changed

+234
-22
lines changed

12 files changed

+234
-22
lines changed

MODULE.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,8 @@ maven.install(
224224
"org.slf4j:slf4j-jdk14:2.0.17",
225225
"org.tomlj:tomlj:1.1.1",
226226
"org.zeromq:jeromq:0.6.0",
227+
"uk.org.webcompere:system-stubs-jupiter:2.1.8",
228+
"uk.org.webcompere:system-stubs-core:2.1.8"
227229
],
228230
boms = [
229231
"io.opentelemetry:opentelemetry-bom:1.46.0",

java/maven_install.json

Lines changed: 45 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"__AUTOGENERATED_FILE_DO_NOT_MODIFY_THIS_FILE_MANUALLY": "THERE_IS_NO_DATA_ONLY_ZUUL",
3-
"__INPUT_ARTIFACTS_HASH": 868628742,
4-
"__RESOLVED_ARTIFACTS_HASH": -933630985,
3+
"__INPUT_ARTIFACTS_HASH": 1624456402,
4+
"__RESOLVED_ARTIFACTS_HASH": 784399109,
55
"artifacts": {
66
"com.beust:jcommander": {
77
"shasums": {
@@ -452,10 +452,10 @@
452452
},
453453
"net.bytebuddy:byte-buddy-agent": {
454454
"shasums": {
455-
"jar": "316d2c0795c2a4d4c4756f2e6f9349837c7430ac34e0477ead874d05f5cc19e5",
456-
"sources": "a73d2869afd79b63396a0a07ac037bbfa184eb7306916343c030feb5335ac940"
455+
"jar": "e1dae7efc5562c29ad3b625b90e6864208de69bad5632c3f93a547f17622ac51",
456+
"sources": "57b0ee93eab8caa3cfc424aa24616462543bb2a7f13848cbb537c225314dffaf"
457457
},
458-
"version": "1.15.11"
458+
"version": "1.17.4"
459459
},
460460
"net.sf.saxon:Saxon-HE": {
461461
"shasums": {
@@ -793,6 +793,20 @@
793793
"sources": "c20e579710d385869496d25217a7820665f7687dc1499b21be6e0ac7e9485a03"
794794
},
795795
"version": "0.6.0"
796+
},
797+
"uk.org.webcompere:system-stubs-core": {
798+
"shasums": {
799+
"jar": "9c27322cfc7043c75384ad444007b0880ca18fe7231d69bfa69616bc773cafe1",
800+
"sources": "6e6c4adf9094e0200400a5d9f8086c8a1c4a0940919fe0b30d30543b483d5687"
801+
},
802+
"version": "2.1.8"
803+
},
804+
"uk.org.webcompere:system-stubs-jupiter": {
805+
"shasums": {
806+
"jar": "9a24867a51f5d22db67d9052a06bc5dd2e9a3e273bc2ee9814620f2d9f25d0a8",
807+
"sources": "208bfe2907ab022fe206402f2ef6b1ea445f8240f072a14a49e338c1448fb2b6"
808+
},
809+
"version": "2.1.8"
796810
}
797811
},
798812
"dependencies": {
@@ -1125,6 +1139,13 @@
11251139
],
11261140
"org.zeromq:jeromq": [
11271141
"eu.neilalexander:jnacl"
1142+
],
1143+
"uk.org.webcompere:system-stubs-core": [
1144+
"net.bytebuddy:byte-buddy",
1145+
"net.bytebuddy:byte-buddy-agent"
1146+
],
1147+
"uk.org.webcompere:system-stubs-jupiter": [
1148+
"uk.org.webcompere:system-stubs-core"
11281149
]
11291150
},
11301151
"packages": {
@@ -2890,6 +2911,20 @@
28902911
"zmq.socket.scattergather",
28912912
"zmq.util",
28922913
"zmq.util.function"
2914+
],
2915+
"uk.org.webcompere:system-stubs-core": [
2916+
"uk.org.webcompere.systemstubs",
2917+
"uk.org.webcompere.systemstubs.environment",
2918+
"uk.org.webcompere.systemstubs.exception",
2919+
"uk.org.webcompere.systemstubs.properties",
2920+
"uk.org.webcompere.systemstubs.resource",
2921+
"uk.org.webcompere.systemstubs.security",
2922+
"uk.org.webcompere.systemstubs.stream",
2923+
"uk.org.webcompere.systemstubs.stream.input",
2924+
"uk.org.webcompere.systemstubs.stream.output"
2925+
],
2926+
"uk.org.webcompere:system-stubs-jupiter": [
2927+
"uk.org.webcompere.systemstubs.jupiter"
28932928
]
28942929
},
28952930
"repositories": {
@@ -3119,7 +3154,11 @@
31193154
"org.yaml:snakeyaml",
31203155
"org.yaml:snakeyaml:jar:sources",
31213156
"org.zeromq:jeromq",
3122-
"org.zeromq:jeromq:jar:sources"
3157+
"org.zeromq:jeromq:jar:sources",
3158+
"uk.org.webcompere:system-stubs-core",
3159+
"uk.org.webcompere:system-stubs-core:jar:sources",
3160+
"uk.org.webcompere:system-stubs-jupiter",
3161+
"uk.org.webcompere:system-stubs-jupiter:jar:sources"
31233162
]
31243163
},
31253164
"version": "2"

java/src/org/openqa/selenium/chrome/ChromeDriverService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public class ChromeDriverService extends DriverService {
4848
*/
4949
public static final String CHROME_DRIVER_EXE_PROPERTY = "webdriver.chrome.driver";
5050

51+
public static final String CHROME_DRIVER_EXE_ENVIRONMENT_VARIABLE = "SE_CHROMEDRIVER";
52+
5153
/** System property that toggles the formatting of the timestamps of the logs */
5254
public static final String CHROME_DRIVER_READABLE_TIMESTAMP =
5355
"webdriver.chrome.readableTimestamp";
@@ -122,6 +124,10 @@ public String getDriverProperty() {
122124
return CHROME_DRIVER_EXE_PROPERTY;
123125
}
124126

127+
public String getDriverEnvironmentVariable() {
128+
return CHROME_DRIVER_EXE_ENVIRONMENT_VARIABLE;
129+
}
130+
125131
@Override
126132
public Capabilities getDefaultDriverOptions() {
127133
return new ChromeOptions();

java/src/org/openqa/selenium/edge/EdgeDriverService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ public class EdgeDriverService extends DriverService {
4646
*/
4747
public static final String EDGE_DRIVER_EXE_PROPERTY = "webdriver.edge.driver";
4848

49+
public static final String EDGE_DRIVER_EXE_ENVIRONMENT_VARIABLE = "SE_EDGEDRIVER";
50+
4951
/** System property that toggles the formatting of the timestamps of the logs */
5052
public static final String EDGE_DRIVER_READABLE_TIMESTAMP = "webdriver.edge.readableTimestamp";
5153

@@ -111,6 +113,10 @@ public String getDriverProperty() {
111113
return EDGE_DRIVER_EXE_PROPERTY;
112114
}
113115

116+
public String getDriverEnvironmentVariable() {
117+
return EDGE_DRIVER_EXE_ENVIRONMENT_VARIABLE;
118+
}
119+
114120
@Override
115121
public Capabilities getDefaultDriverOptions() {
116122
return new EdgeOptions();

java/src/org/openqa/selenium/firefox/GeckoDriverService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ public class GeckoDriverService extends FirefoxDriverService {
4848
*/
4949
public static final String GECKO_DRIVER_EXE_PROPERTY = "webdriver.gecko.driver";
5050

51+
public static final String GECKO_DRIVER_EXE_ENVIRONMENT_VARIABLE = "SE_GECKODRIVER";
52+
5153
/**
5254
* System property that defines the location of the file where GeckoDriver should write log
5355
* messages to.
@@ -103,6 +105,10 @@ public String getDriverProperty() {
103105
return GECKO_DRIVER_EXE_PROPERTY;
104106
}
105107

108+
public String getDriverEnvironmentVariable() {
109+
return GECKO_DRIVER_EXE_ENVIRONMENT_VARIABLE;
110+
}
111+
106112
@Override
107113
public Capabilities getDefaultDriverOptions() {
108114
return new FirefoxOptions();

java/src/org/openqa/selenium/ie/InternetExplorerDriverService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ public class InternetExplorerDriverService extends DriverService {
4646
*/
4747
public static final String IE_DRIVER_EXE_PROPERTY = "webdriver.ie.driver";
4848

49+
public static final String IE_DRIVER_EXE_ENVIRONMENT_VARIABLE = "SE_IEDRIVER";
50+
4951
/**
5052
* System property that defines the location of the file where IEDriverServer should write log
5153
* messages to.
@@ -98,6 +100,10 @@ public String getDriverProperty() {
98100
return IE_DRIVER_EXE_PROPERTY;
99101
}
100102

103+
public String getDriverEnvironmentVariable() {
104+
return IE_DRIVER_EXE_ENVIRONMENT_VARIABLE;
105+
}
106+
101107
@Override
102108
public Capabilities getDefaultDriverOptions() {
103109
return new InternetExplorerOptions();

java/src/org/openqa/selenium/remote/service/DriverFinder.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -96,17 +96,20 @@ private Result getBinaryPaths() {
9696
String driverName = service.getDriverName();
9797
result = new Result(service.getExecutable());
9898
if (result.getDriverPath() == null) {
99-
result = new Result(System.getProperty(service.getDriverProperty()));
99+
result = new Result(System.getenv(service.getDriverEnvironmentVariable()));
100100
if (result.getDriverPath() == null) {
101-
List<String> arguments = toArguments();
102-
result = seleniumManager.getBinaryPaths(arguments);
103-
Require.state(options.getBrowserName(), Path.of(result.getBrowserPath()))
104-
.isExecutable();
105-
} else {
106-
LOG.fine(
107-
String.format(
108-
"Skipping Selenium Manager, path to %s found in system property: %s",
109-
driverName, result.getDriverPath()));
101+
result = new Result(System.getProperty(service.getDriverProperty()));
102+
if (result.getDriverPath() == null) {
103+
List<String> arguments = toArguments();
104+
result = seleniumManager.getBinaryPaths(arguments);
105+
Require.state(options.getBrowserName(), Path.of(result.getBrowserPath()))
106+
.isExecutable();
107+
} else {
108+
LOG.fine(
109+
String.format(
110+
"Skipping Selenium Manager, path to %s found in system property: %s",
111+
driverName, result.getDriverPath()));
112+
}
110113
}
111114
} else {
112115
LOG.fine(

java/src/org/openqa/selenium/remote/service/DriverService.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,10 @@ public String getDriverProperty() {
153153
return null;
154154
}
155155

156+
public String getDriverEnvironmentVariable() {
157+
return null;
158+
}
159+
156160
protected File getDriverExecutable() {
157161
return null;
158162
}

java/src/org/openqa/selenium/safari/SafariDriverService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public class SafariDriverService extends DriverService {
4949
*/
5050
public static final String SAFARI_DRIVER_EXE_PROPERTY = "webdriver.safari.driver";
5151

52+
public static final String SAFARI_DRIVER_EXE_ENVIRONMENT_VARIABLE = "SE_SAFARIDRIVER";
53+
5254
public static final String SAFARI_DRIVER_LOGGING = "webdriver.safari.logging";
5355

5456
private static final File SAFARI_DRIVER_EXECUTABLE = new File("/usr/bin/safaridriver");
@@ -84,6 +86,10 @@ public String getDriverProperty() {
8486
return SAFARI_DRIVER_EXE_PROPERTY;
8587
}
8688

89+
public String getDriverEnvironmentVariable() {
90+
return SAFARI_DRIVER_EXE_ENVIRONMENT_VARIABLE;
91+
}
92+
8793
public File getDriverExecutable() {
8894
return SAFARI_DRIVER_EXECUTABLE;
8995
}

java/test/org/openqa/selenium/remote/service/BUILD.bazel

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,7 @@ java_test_suite(
1212
artifact("org.junit.jupiter:junit-jupiter-api"),
1313
artifact("org.assertj:assertj-core"),
1414
artifact("org.mockito:mockito-core"),
15+
artifact("uk.org.webcompere:system-stubs-jupiter"),
16+
artifact("uk.org.webcompere:system-stubs-core"),
1517
] + JUNIT5_DEPS,
1618
)

0 commit comments

Comments
 (0)