15
15
package org .uiautomation .ios .server ;
16
16
17
17
import org .json .JSONObject ;
18
- import org .openqa .selenium .html5 .Location ;
19
18
import org .uiautomation .ios .UIAModels .configuration .WorkingMode ;
20
19
import org .uiautomation .ios .communication .WebDriverLikeCommand ;
21
20
import org .uiautomation .ios .communication .WebDriverLikeRequest ;
25
24
import org .uiautomation .ios .server .command .Handler ;
26
25
import org .uiautomation .ios .server .command .NotImplementedNativeHandler ;
27
26
import org .uiautomation .ios .server .command .NotImplementedWebHandler ;
28
- import org .uiautomation .ios .server .command .uiautomation .*;
27
+ import org .uiautomation .ios .server .command .uiautomation .ClearNHandler ;
28
+ import org .uiautomation .ios .server .command .uiautomation .DefaultUIAScriptNHandler ;
29
+ import org .uiautomation .ios .server .command .uiautomation .ExecuteScriptNHandler ;
30
+ import org .uiautomation .ios .server .command .uiautomation .FindElementNHandler ;
31
+ import org .uiautomation .ios .server .command .uiautomation .FindElementsRoot ;
32
+ import org .uiautomation .ios .server .command .uiautomation .GetAttributeNHandler ;
33
+ import org .uiautomation .ios .server .command .uiautomation .GetCapabilitiesNHandler ;
34
+ import org .uiautomation .ios .server .command .uiautomation .GetConfigurationNHandler ;
35
+ import org .uiautomation .ios .server .command .uiautomation .GetCurrentContextNHandler ;
36
+ import org .uiautomation .ios .server .command .uiautomation .GetElementSizeNHandler ;
37
+ import org .uiautomation .ios .server .command .uiautomation .GetOrientationNHandler ;
38
+ import org .uiautomation .ios .server .command .uiautomation .GetSessionsNHandler ;
39
+ import org .uiautomation .ios .server .command .uiautomation .GetTimeoutNHandler ;
40
+ import org .uiautomation .ios .server .command .uiautomation .GetWindowHandlesNHandler ;
41
+ import org .uiautomation .ios .server .command .uiautomation .LogElementTreeNHandler ;
42
+ import org .uiautomation .ios .server .command .uiautomation .NewSessionNHandler ;
43
+ import org .uiautomation .ios .server .command .uiautomation .SendKeysNHandler ;
44
+ import org .uiautomation .ios .server .command .uiautomation .ServerStatusNHandler ;
45
+ import org .uiautomation .ios .server .command .uiautomation .SetConfigurationNHandler ;
46
+ import org .uiautomation .ios .server .command .uiautomation .SetCurrentContextNHandler ;
47
+ import org .uiautomation .ios .server .command .uiautomation .SetImplicitWaitTimeoutNHandler ;
48
+ import org .uiautomation .ios .server .command .uiautomation .SetLocationNHandler ;
49
+ import org .uiautomation .ios .server .command .uiautomation .SetOrientationNHandler ;
50
+ import org .uiautomation .ios .server .command .uiautomation .SetTimeoutNHandler ;
51
+ import org .uiautomation .ios .server .command .uiautomation .SetValueNHandler ;
52
+ import org .uiautomation .ios .server .command .uiautomation .StopSessionNHandler ;
53
+ import org .uiautomation .ios .server .command .uiautomation .TakeScreenshotNHandler ;
29
54
import org .uiautomation .ios .server .command .web .BackHandler ;
30
55
import org .uiautomation .ios .server .command .web .ClearHandler ;
31
56
import org .uiautomation .ios .server .command .web .ClickHandler ;
@@ -247,14 +272,7 @@ public String jsMethod(JSONObject payload, IOSApplication aut) {
247
272
248
273
249
274
public Handler createHandler (IOSDriver driver , WebDriverLikeRequest request ) throws Exception {
250
- boolean isNative = true ;
251
- WebDriverLikeCommand command = request .getGenericCommand ();
252
-
253
- if (!command .isSessionLess ()) {
254
- ServerSideSession sss = driver .getSession (request .getSession ());
255
- isNative = sss .getMode () == WorkingMode .Native ;
256
- }
257
-
275
+ boolean isNative = isNative (driver , request );
258
276
Class <?> clazz ;
259
277
260
278
if (isNative ) {
@@ -276,4 +294,21 @@ public Handler createHandler(IOSDriver driver, WebDriverLikeRequest request) thr
276
294
277
295
}
278
296
297
+ private boolean isNative (IOSDriver driver , WebDriverLikeRequest request ) {
298
+ // if there a force flag in the request.
299
+ if (request .getPayload ().has ("native" )) {
300
+ return request .getPayload ().optBoolean ("native" );
301
+ }
302
+
303
+ // else, get it from the current mode.Ò
304
+ boolean isNative = true ;
305
+ WebDriverLikeCommand command = request .getGenericCommand ();
306
+
307
+ if (!command .isSessionLess ()) {
308
+ ServerSideSession sss = driver .getSession (request .getSession ());
309
+ isNative = sss .getMode () == WorkingMode .Native ;
310
+ }
311
+ return isNative ;
312
+ }
313
+
279
314
}
0 commit comments