83
83
import org .openqa .selenium .virtualauthenticator .VirtualAuthenticatorOptions ;
84
84
85
85
@ Augmentable
86
- public class RemoteWebDriver implements WebDriver , JavascriptExecutor ,
87
- HasInputDevices , HasCapabilities , Interactive , TakesScreenshot ,
88
- HasVirtualAuthenticator {
86
+ public class RemoteWebDriver implements WebDriver , JavascriptExecutor , HasInputDevices ,
87
+ HasCapabilities , Interactive , TakesScreenshot ,
88
+ HasVirtualAuthenticator {
89
89
90
90
// TODO(dawagner): This static logger should be unified with the per-instance localLogs
91
91
private static final Logger logger = Logger .getLogger (RemoteWebDriver .class .getName ());
@@ -114,13 +114,20 @@ public RemoteWebDriver(Capabilities capabilities) {
114
114
this ((URL ) null , capabilities );
115
115
}
116
116
117
+ public RemoteWebDriver (URL remoteAddress , Capabilities capabilities ) {
118
+ this (new HttpCommandExecutor (remoteAddress ), capabilities );
119
+ }
120
+
117
121
public RemoteWebDriver (CommandExecutor executor , Capabilities capabilities ) {
122
+ if (executor == null ) {
123
+ throw new IllegalArgumentException ("RemoteWebDriver cannot work without a command executor" );
124
+ }
118
125
this .executor = executor ;
119
126
120
127
init (capabilities );
121
128
122
129
if (executor instanceof NeedsLocalLogs ) {
123
- ((NeedsLocalLogs )executor ).setLocalLogs (localLogs );
130
+ ((NeedsLocalLogs ) executor ).setLocalLogs (localLogs );
124
131
}
125
132
126
133
try {
@@ -136,10 +143,6 @@ public RemoteWebDriver(CommandExecutor executor, Capabilities capabilities) {
136
143
}
137
144
}
138
145
139
- public RemoteWebDriver (URL remoteAddress , Capabilities capabilities ) {
140
- this (new HttpCommandExecutor (remoteAddress ), capabilities );
141
- }
142
-
143
146
@ Beta
144
147
public static RemoteWebDriverBuilder builder () {
145
148
return new RemoteWebDriverBuilder ();
@@ -173,8 +176,8 @@ private void init(Capabilities capabilities) {
173
176
Set <String > logTypesToInclude = builder .build ();
174
177
175
178
LocalLogs performanceLogger = LocalLogs .getStoringLoggerInstance (logTypesToInclude );
176
- LocalLogs clientLogs = LocalLogs .getHandlerBasedLoggerInstance (LoggingHandler . getInstance (),
177
- logTypesToInclude );
179
+ LocalLogs clientLogs = LocalLogs .getHandlerBasedLoggerInstance (
180
+ LoggingHandler . getInstance (), logTypesToInclude );
178
181
localLogs = LocalLogs .getCombinedLogsHolder (clientLogs , performanceLogger );
179
182
remoteLogs = new RemoteLogs (executeMethod , localLogs );
180
183
}
0 commit comments