So I am trying to write an automation test script for an android app running inside an Android Emulator (avd) but I am getting the error below in Appium logs:
[debug] [MJSONWP] Bad parameters: BadParametersError: Parameters were incorrect.
We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities
","capabilities","sessionId","id","sessionId","id"]} and you sent ["desiredCapab
ilities","requiredCapabilities","capabilities","alwaysMatch","firstMatch"]
My setup is:
Running 'adb devices' command in cmd gives me
List of devices attached
emulator-5554 device
Desired capabilities setting is
@BeforeClass
public void setUp() throws MalformedURLException{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("platformName","Android");
capabilities.setCapability("platformVersion","5.1");
capabilities.setCapability("deviceName","emulator-5554");
capabilities.setCapability("app", path_to_apk);
driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
}
IDE error output when running the test:
org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{app=src//main//resources//test.apk, platformVersion=5.1, platformName=Android, deviceName=emulator-5554}], required capabilities = Capabilities [{}]
Build info: version: '3.3.0', revision: 'b526bd5b41', time: '2017-03-07 19:26:04 +0000'
I am stuck at this point and don't know what to do.
I mentioned in my comment that I ultimately used an older version of Selenium in order for the desired capabilities to match what is expected by Appium 1.6.3. In my case it's Selenium Java Client 3.0.1 + Appium 1.6.3.