获得Selenium WebDriver例外:无法解析远程响应:参数不正确



我试图在MacBook上使用Selenium Web Driver和Appium设置Android应用程序。

这是我的代码: -

package com.tas.androidtest;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.remote.MobilePlatform;
import junit.framework.Assert;
public class MyFirstAppiumDroidTest {
public static void main(String[] args) throws MalformedURLException {
    File appDir= new File(System.getProperty("user.dir")+"/app");
       File app= new File(appDir, "selendroid-test-app-0.17.0.apk");
       //declaring Andriod platform properties
       DesiredCapabilities capa = new DesiredCapabilities();
       capa.setCapability("deviceName","Android");
       capa.setCapability("platformVersion", "6.0.1");
       capa.setCapability("platformName",MobilePlatform.ANDROID);
       capa.setCapability("app", app.getAbsolutePath());
       capa.setCapability("appPackage", "io.selendriod.testapp");
       capa.setCapability("appActivity","io.selendriod.testapp.HomeScreenActivity");
       //instantiating Andriod driver  
    AndroidDriver driver= new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"),capa);
       driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
       driver.findElementById("io.selendroid.testapp:id/startUserRegistration").clear();
       driver.findElementById("io.selendroid.testapp:id/inputUsername").sendKeys("test");
       driver.findElement(By.id("io.selendroid.testapp:id/inputEmail")).sendKeys("test@mail.com");
       driver.findElement(By.id("io.selendroid.testapp:id/inputPassword")).sendKeys("12345");
       driver.hideKeyboard();
       driver.findElement(By.id("io.selendroid.testapp:id/input_adds")).click();
       driver.findElement(By.id("io.selendroid.testapp:id/btnRegisterUser")).click();
       Assert.assertEquals("napendra", driver.findElement(By.id("io.selendroid.testapp:id/label_username_data")).getText());
       driver.quit();
       System.out.print("Completed !!!");
}
}

我已经启动了Appium服务器并使用Maven运行测试,但是每次运行测试时我都会遇到错误。这是错误: -

线程" main" org.openqa.selenium.webdriverexception中的例外: 无法解析远程响应:参数不正确。我们要 {"必需":[" Desiredcapabilities"],"可选":["必需胜诉"," sessionId"," id"]} 然后您发送[" DesiredCapabilities","功能"]构建信息: 版本:'3.7.1',修订:'8a0099a',时间: '2017-11-06T21:01:39.354Z'系统信息:主机: 'users-macbook-air.local',ip:'192.xxx.xxx.xxx',os.name:'mac os x', os.ark:'x86_64',OS.Version:'10 .11.6',java.version:'1.8.0_91' 驱动程序信息:驱动程序。version:AndroidDriver在 org.openqa.selenium.remote.protocolhandshake.createsession(stolopthandhake.java:111) 在 org.openqa.selenium.remote.protocolhandshake.createsession(protocthandhake.java:73) 在 org.openqa.selenium.remote.httpcommandexecutor.execute(httpcommandexecutor.java:142) 在 io.appium.java_client.remote.appiumcommandexecutor.execute(appiumcommandexecutor.java:69) 在 org.openqa.selenium.remote.remotewebdriver.execute(remotewebdriver.java:600) 在 io.appium.java_client.defaultgenericmobiledriver.execute(defaultgenericmobiledriver.java:40) 在io.appium.java_client.appiumdriver.execute(appiumdriver.java:1) 在 io.appium.java_client.android.androiddriver.execute(androiddriver.java:1) 在 org.openqa.selenium.remote.remotewebdriver.startsession(remotewebdriver.java:219) 在 org.openqa.selenium.remote.remotewebdriver。(remotewebdriver.java:142) 在 io.appium.java_client.defaultgenericmobiledriver。 在io.appium.java_client.appiumdriver。(appiumdriver.java:114) 在io.appium.java_client.appiumdriver。(appiumdriver.java:132) 在 io.appium.java_client.android.androiddriver。(androiddriver.java:92) 在 com.tas.androidtest.myfirstappiumdroidtest.main(myfirstappiumdroidtest.java:52)

可能您在测试中使用了后来的Java-client版本,并且与 1.5.3 Server版本不兼容。

我在其他一些报告中看到了此错误,而Appium Server更新解决了:1.7.1现在是最新的稳定。

最新更新