获取Selenium Webdriver异常:无法解析远程响应:参数不正确

时间:2017-12-13 05:38:41

标签: java selenium selenium-webdriver appium

我正在尝试使用selenium webdriver和appium在Android应用程序的macbook上设置自动化。

这是我的代码: -

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&#34],"可选":[" requiredCapabilities""的sessionId",& #34; ID"]}   并且您发送了[" desiredCapabilities","功能"]构建信息:   版本:' 3.7.1',修订版:' 8a0099a',时间:   ' 2017-11-06T21:01:39.354Z'系统信息:主持人:   '用户 - MacBook-Air.local',ip:' 192.xxx.xxx.xxx',os.name:' Mac OS X',   os.arch:' x86_64',os.version:' 10.11.6',java.version:' 1.8.0_91'   驱动程序信息:driver.version:AndroidDriver at   org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:111)     在   org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.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)     at 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。(DefaultGenericMobileDriver.java:36)     在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)

1 个答案:

答案 0 :(得分:0)

可能您在测试中使用的是更高版本的java-client,并且与 1.5.3 服务器版本不兼容。

我在其他一些报告中看到了这个错误,Appium服务器更新解决了它:1.7.1现在最新稳定了。