appium/java-client

Appium 1.5 support

romainlouvet opened this issue · 16 comments

Appium version : 1.5.0-beta11
Java-client version : 3.3.0

When i try to execute command : driver.removeApp("fr.****");

-> Exception
Parameters were incorrect. We wanted {"required":[["appId"],["bundleId"]]} and you sent ["bundleId"]

If you update the mobile-json-wire-protocol package to the latest (1.2.0) this ought to be fixed.

Related client and server bugs will be mentioned here

It is finished.

Hello,

It seems the AndroidMobileCapabilityType.OPTIONAL_INTENT_ARGUMENTS isn't working anymore.

Previously (client 3.3/server 1.4.16) when it worked -sending an extra arg- :

bash
info: [debug] executing cmd: adb -s 4300e98bd23e11af shell "am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n fr.leboncoin.delivery.debug/fr.leboncoin.ui.activities.SwitcherActivity -e env qa0"


Now : 

``` bash```
[debug] [ADB] Running adb with args: ["-P",5037,"-s","4300e98bd23e11af","shell","am","start","-n","fr.leboncoin.delivery.debug/fr.leboncoin.ui.activities.SwitcherActivity","-S","-a","android.intent.action.MAIN","-c","android.intent.category.LAUNCHER","-f","0x10200000","-e env qa0"]

Could it be a quote issue? We lost the adb command line information du to these list args.

Also, why does keystorePassword require a boolean?

bash
"The desiredCapabilities object was not valid for the following reason(s): keystorePassword must be of type boolean."


It was previously a String, like keyPassword.

Appium version : 1.5.0
Java-client version : 3.4.0

@TikhomirovSergey
When i try to execute command : driver.removeApp("fr.****");
[HTTP] --> POST /wd/hub/session/a939f1f2-742c-4217-b106-0c529966e23c/appium/device/remove_app [MJSONWP] Calling AppiumDriver.removeApp() with args: ["fr.leboncoin.Leboncoin","a939f1f2-742c-4217-b106-0c529966e23c"] [debug] [iOS] Executing iOS command 'removeApp' [HTTP] <-- POST /wd/hub/session/a939f1f2-742c-4217-b106-0c529966e23c/appium/device/remove_app 501 3

org.openqa.selenium.WebDriverException: Method has not yet been implemented (WARNING: The server did not provide any stacktrace information)

@romainlouvet Can you please reopen this issue? Its a valid bug.

@TikhomirovSergey FYI - https://gist.github.com/SrinivasanTarget/f724dd986701f029bdf4

@imurchie Could be a possible bug in server side?

@SrinivasanTarget I can't reopen :/

OK will raise a new one @romainlouvet

Yes, the keystorePassword cap ought to be a string. Fixing.

@Fanch- can you post the command used to use AndroidMobileCapabilityType.OPTIONAL_INTENT_ARGUMENTS? I think I see the issue but I want to get how to fix it straight.

With the java-client :

Previously it was :

bash
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("appPackage", ".debug");
capabilities.setCapability("appActivity", "
.SwitcherActivity");
capabilities.setCapability("appWaitActivity", "***.SplashScreenActivity");
capabilities.setCapability("optionalIntentArguments", "-e env " + getQaEnv());


Now : 

``` bash```
{....}
capabilities.setCapability(AndroidMobileCapabilityType.OPTIONAL_INTENT_ARGUMENTS, "-e env " + getQaEnv());

We have two apps : in the first one which is a sort of launcher-switcher-, we can send an extra argument to launch the second one on the right environment.

I can see with 3.4.0/1.5.0 it doesn't launch the SplashScreenActivity, so there is a problem with the adb command generated.

Ugh. Ok. I will try to come up with a general solution for this.

I have added some precisions to my previous post :)

I don't know what that means.

keystorePassword issue fixed in appium-android-driver 1.6.15.

And your commit appium/appium-adb@176a3f9 fixed the issue with optionalIntentArguments, thx.