Desired capabilities code(Java) ran for the 1st time and got an error message

Background:
O/S Mac Air ver 10.13.4
Appium Version 1.5.3 (Ara)
Java 1.8

Hi guys I hope you can help me with my problem. I just tried to run my Desired Capabilities for the 1st time and I got the following error message from Eclipse. See the attached video here

Java code from eclipse


package basics;

import java.io.File;

import java.net.MalformedURLException;

import java.net.URL;

import org.openqa.selenium.remote.DesiredCapabilities;

import io.appium.java_client.android.AndroidDriver;

import io.appium.java_client.android.AndroidElement;

import io.appium.java_client.remote.MobileCapabilityType;

public class Invoke {

public static void main(String[] args) throws MalformedURLException {

// TODO Auto-generated method stub

File f = new File("/Users/jacquelinegeorge/Documents/Appium/Apps");

File fs=new File (f,“ApiDemos-debug.apk”);

DesiredCapabilities cap =new DesiredCapabilities();

cap.setCapability(MobileCapabilityType.DEVICE_NAME, “JacquelineNexus5”);

cap.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath() );

AndroidDriver driver = new AndroidDriver<>(new URL(“http://127.0.0.1:4723/wd/hub”),cap);

}

}

Code from Eclipse Terminal

========================

Exception in thread “main” org.openqa.selenium.WebDriverException: Unable to parse remote response: Parameters were incorrect. We wanted {“required”:[“desiredCapabilities”],“optional”:[“requiredCapabilities”,“sessionId”,“id”]} and you sent [“desiredCapabilities”,“capabilities”]

Build info: version: ‘3.9.1’, revision: ‘63f7b50’, time: ‘2018-02-07T22:42:22.379Z’

System info: host: ‘Jacquelines-MacBook-Air.local’, ip: ‘192.168.0.5’, os.name: ‘Mac OS X’, os.arch: ‘x86_64’, os.version: ‘10.13.4’, java.version: ‘1.8.0_71’

Driver info: driver.version: AndroidDriver

at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:111)

at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)

at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:138)

at io.appium.java_client.remote.AppiumCommandExecutor.execute(AppiumCommandExecutor.java:89)

at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)

at io.appium.java_client.DefaultGenericMobileDriver.execute(DefaultGenericMobileDriver.java:42)

at io.appium.java_client.AppiumDriver.execute(AppiumDriver.java:1)

at io.appium.java_client.android.AndroidDriver.execute(AndroidDriver.java:1)

at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)

at org.openqa.selenium.remote.RemoteWebDriver.(RemoteWebDriver.java:142)

at io.appium.java_client.DefaultGenericMobileDriver.(DefaultGenericMobileDriver.java:38)

at io.appium.java_client.AppiumDriver.(AppiumDriver.java:83)

at io.appium.java_client.AppiumDriver.(AppiumDriver.java:93)

at io.appium.java_client.android.AndroidDriver.(AndroidDriver.java:72)

at basics.Invoke.main(Invoke.java:25)

Code from Appium

================================

[Appium] Appium REST http interface listener started on 0.0.0.0:4723

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 42 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 30 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 233 ms - 83

[HTTP] --> POST /wd/hub/session {“desiredCapabilities”:{“app”:"/Users/jacquelinegeorge/Documents/Appium/Apps/ApiDemos-debug.apk",“deviceName”:“JacquelineNexus5”,“platformName”:“Android”},“capabilities”:{“desiredCapabilities”:{“app”:"/Users/jacquelinegeorge/Documents/Appium/Apps/ApiDemos-debug.apk",“deviceName”:“JacquelineNexus5”,“platformName”:“Android”},“firstMatch”:[{“platformName”:“android”}]}}

[debug] [MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect. We wanted {“required”:[“desiredCapabilities”],“optional”:[“requiredCapabilities”,“sessionId”,“id”]} and you sent [“desiredCapabilities”,“capabilities”]

[HTTP] <-- POST /wd/hub/session 400 21 ms - 178

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 75 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 100 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 92 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 107 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 80 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 95 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 64 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 69 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 26 ms - 83

[HTTP] --> GET /wd/hub/status {}

[MJSONWP] Calling AppiumDriver.getStatus() with args: []

[MJSONWP] Responding to client with driver.getStatus() result: {“build”:{“version”:“1.5.3”…

[HTTP] <-- GET /wd/hub/status 200 28 ms - 83

You are using a very old version.

Get latest appium (https://github.com/appium/appium/releases/tag/v1.8.0) or if you prefer using a GUI version, get the desktop version (https://github.com/appium/appium-desktop/releases).

1 Like

Thank you so much I will update to the latest version.

Hi,

How do I configure desktop appium to run my apk and ipa apps on emulator and device?

I dont use appium desktop, but I guess its exactly the same way as appium server. You define the app and devices to use on capabilities:

capabilities.setCapability(MobileCapabilityType.APP,"...");
capabilities.setCapability(MobileCapabilityType.UDID,"....");

Thank you for the suggestion it worked perfectly.

You are a legend :o)