1313
1414package solutions .bellatrix .android .infrastructure ;
1515
16-
1716import io .appium .java_client .android .AndroidDriver ;
18- import io .appium .java_client .remote .AndroidMobileCapabilityType ;
19- import io .appium .java_client .remote .MobileCapabilityType ;
17+ import io .appium .java_client .android .options .UiAutomator2Options ;
18+ import io .appium .java_client .remote .AutomationName ;
19+ import io .appium .java_client .remote .MobilePlatform ;
2020import lombok .SneakyThrows ;
2121import org .openqa .selenium .MutableCapabilities ;
22- import org .openqa .selenium .remote .DesiredCapabilities ;
2322import solutions .bellatrix .android .configuration .AndroidSettings ;
2423import solutions .bellatrix .android .configuration .GridSettings ;
2524import solutions .bellatrix .core .configuration .ConfigurationService ;
3736public class DriverService {
3837 private static final ThreadLocal <Boolean > DISPOSED ;
3938 private static final ThreadLocal <AppConfiguration > APP_CONFIGURATION ;
40- private static final ThreadLocal <HashMap <String , String >> CUSTOM_DRIVER_OPTIONS ;
39+ private static final ThreadLocal <HashMap <String , Object >> CUSTOM_DRIVER_OPTIONS ;
4140 private static final ThreadLocal <AndroidDriver > WRAPPED_ANDROID_DRIVER ;
4241 private static boolean isBuildNameSet = false ;
4342 private static String buildName ;
@@ -51,7 +50,7 @@ public class DriverService {
5150 DISPOSED .set (false );
5251 }
5352
54- public static HashMap <String , String > getCustomDriverOptions () {
53+ public static HashMap <String , Object > getCustomDriverOptions () {
5554 return CUSTOM_DRIVER_OPTIONS .get ();
5655 }
5756
@@ -89,22 +88,23 @@ public static AndroidDriver start(AppConfiguration configuration) {
8988 }
9089
9190 private static AndroidDriver initializeDriverGridMode (GridSettings gridSettings , String testName ) {
92- var caps = new DesiredCapabilities ();
93- HashMap < String , Object > options = new HashMap < String , Object >( );
94- options . put ( MobileCapabilityType . PLATFORM_NAME , "Android" );
95- options . put ( MobileCapabilityType . PLATFORM_VERSION , getAppConfiguration ().getAndroidVersion ());
96- options . put ( MobileCapabilityType . DEVICE_NAME , getAppConfiguration ().getDeviceName ());
91+ var caps = new UiAutomator2Options ();
92+ caps . setPlatformName ( MobilePlatform . ANDROID );
93+ caps . setAutomationName ( AutomationName . ANDROID_UIAUTOMATOR2 );
94+ caps . setPlatformVersion ( getAppConfiguration ().getAndroidVersion ());
95+ caps . setDeviceName ( getAppConfiguration ().getDeviceName ());
9796
9897 if (getAppConfiguration ().getIsMobileWebExecution ()) {
99- options . put ( MobileCapabilityType . BROWSER_NAME , ConfigurationService .get (AndroidSettings .class ).getDefaultBrowser ());
98+ caps . withBrowserName ( ConfigurationService .get (AndroidSettings .class ).getDefaultBrowser ());
10099 } else {
101- options . put ( MobileCapabilityType . APP , getAppConfiguration ().getAppPath ().replace ("\\ " , "/" ));
102- options . put ( AndroidMobileCapabilityType . APP_PACKAGE , getAppConfiguration ().getAppPackage ());
103- options . put ( AndroidMobileCapabilityType . APP_ACTIVITY , getAppConfiguration ().getAppActivity ());
100+ caps . setApp ( getAppConfiguration ().getAppPath ().replace ("\\ " , "/" ));
101+ caps . setAppPackage ( getAppConfiguration ().getAppPackage ());
102+ caps . setAppActivity ( getAppConfiguration ().getAppActivity ());
104103 }
105104
106- options . put ( "name" , testName );
105+ var options = new HashMap < String , Object >( );
107106 addGridOptions (options , gridSettings );
107+ options .put ("name" , testName );
108108 caps .setCapability (gridSettings .getOptionsName (), options );
109109
110110 AndroidDriver driver = null ;
@@ -120,17 +120,18 @@ private static AndroidDriver initializeDriverGridMode(GridSettings gridSettings,
120120
121121 @ SneakyThrows
122122 private static AndroidDriver initializeDriverRegularMode (String serviceUrl ) {
123- var caps = new DesiredCapabilities ();
124- caps .setCapability (MobileCapabilityType .PLATFORM_NAME , "Android" );
125- caps .setCapability (MobileCapabilityType .PLATFORM_VERSION , getAppConfiguration ().getAndroidVersion ());
126- caps .setCapability (MobileCapabilityType .DEVICE_NAME , getAppConfiguration ().getDeviceName ());
123+ var caps = new UiAutomator2Options ();
124+ caps .setPlatformName (MobilePlatform .ANDROID );
125+ caps .setAutomationName (AutomationName .ANDROID_UIAUTOMATOR2 );
126+ caps .setPlatformVersion (getAppConfiguration ().getAndroidVersion ());
127+ caps .setDeviceName (getAppConfiguration ().getDeviceName ());
127128
128129 if (getAppConfiguration ().getIsMobileWebExecution ()) {
129- caps .setCapability ( MobileCapabilityType . BROWSER_NAME , ConfigurationService .get (AndroidSettings .class ).getDefaultBrowser ());
130+ caps .withBrowserName ( ConfigurationService .get (AndroidSettings .class ).getDefaultBrowser ());
130131 } else {
131- caps .setCapability ( MobileCapabilityType . APP , getAppConfiguration ().getAppPath ());
132- caps .setCapability ( AndroidMobileCapabilityType . APP_PACKAGE , getAppConfiguration ().getAppPackage ());
133- caps .setCapability ( AndroidMobileCapabilityType . APP_ACTIVITY , getAppConfiguration ().getAppActivity ());
132+ caps .setApp ( getAppConfiguration ().getAppPath (). replace ( " \\ " , "/" ));
133+ caps .setAppPackage ( getAppConfiguration ().getAppPackage ());
134+ caps .setAppActivity ( getAppConfiguration ().getAppActivity ());
134135 }
135136
136137 addDriverConfigOptions (caps );
0 commit comments