1515package org .uiautomation .ios .server ;
1616
1717import org .json .JSONObject ;
18- import org .openqa .selenium .html5 .Location ;
1918import org .uiautomation .ios .UIAModels .configuration .WorkingMode ;
2019import org .uiautomation .ios .communication .WebDriverLikeCommand ;
2120import org .uiautomation .ios .communication .WebDriverLikeRequest ;
2524import org .uiautomation .ios .server .command .Handler ;
2625import org .uiautomation .ios .server .command .NotImplementedNativeHandler ;
2726import 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 ;
2954import org .uiautomation .ios .server .command .web .BackHandler ;
3055import org .uiautomation .ios .server .command .web .ClearHandler ;
3156import org .uiautomation .ios .server .command .web .ClickHandler ;
@@ -247,14 +272,7 @@ public String jsMethod(JSONObject payload, IOSApplication aut) {
247272
248273
249274 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 );
258276 Class <?> clazz ;
259277
260278 if (isNative ) {
@@ -276,4 +294,21 @@ public Handler createHandler(IOSDriver driver, WebDriverLikeRequest request) thr
276294
277295 }
278296
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+
279314}
0 commit comments