MobileCapabilityType Desired Capabilities vs Normal Desired Capabilities

DOESN’T WORKS

DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, “”);
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, “”);
capabilities.setCapability(“avd”,“Test”);//To point particular device.
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME,“Android”);
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION,“4.3”);
capabilities.setCapability(MobileCapabilityType.APP,appDir.getAbsolutePath());
capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY,".SplashActivity");
capabilities.setCapability(MobileCapabilityType.APP_PACKAGE,“com.htcindia.autoinsurance”);*/

WORKS
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, “”);
capabilities.setCapability(“avd”,“AutoInsurance”);
capabilities.setCapability(“deviceName”,"");
capabilities.setCapability(“platformVersion”,“4.3”);
capabilities.setCapability(“platformName”,“Android”);
capabilities.setCapability(“app”,“D:/SOFTWARES/Apks/autoInsurance.apk”);
driver = new AppiumDriver(new URL(“http://127.0.0.1:4723/wd/hub”),capabilities);

Using the Appium version 1.4.0.0, Java Client 1.5
also tried with
Using the Appium version 1.4.0.0, Java Client 2.2.0

When I use the normal capabilities (Passing as string) it works well.

But when I use the MobileCapabilityType I’m getting an error like:
Exception in thread “main” org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Activity used to start app doesn’t exist or cannot be launched! Make sure it exists and is a launchable activity) (WARNING: The server did not provide any stacktrace information)

What could be the solution?

As per the error, it was not able to find the launcher activity. [In ur case SplashActivity]

Can u try same app capability as below -

capabilities.setCapability(MobileCapabilityType.APP,“D:/SOFTWARES/Apks/autoInsurance.apk”);

And comment out Package and Activity capabilities.

1 Like

I have commented the APP PACKAGE and APP ACTIVITY then I run the code.

I got an error like:

Exception in thread “main” org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Activity used to start app doesn’t exist or cannot be launched! Make sure it exists and is a launchable activity) (WARNING: The server did not provide any stacktrace information)

Can you try following in Normal capability -
remove - app capability
use - capabilities.setCapability(“appPackage”, “.SplashActivity”);
capabilities.setCapability(“appActivity”, “com.htcindia.autoinsurance”);

Dees it work?

Yeah those things works well. I have a clarification that why these MobileCapabilityType is not working over here. But the same is working well in iOS.

Whether it is not implemented for Android testing

@Donald Can you look over here :smile:

Hi Ashok,

Please check if appDir.getAbsolutePath() is passing the local absolute path D:/SOFTWARES/Apks/autoInsurance.apk . This might be an issue . Other that this please do verify your app activity which you want to launch.
In addition just a suggestion - MobileCapabilityType variables are constant, no need to assign null values .

Thanks,
Donald

it’s worked. Thanks:blush:

it’s worked. Helped :slight_smile:

1 Like