【问题标题】:Appium Automation: Getting error - org.openqa.selenium.WebDriverException: Unable to parse remote response: Parameters were incorrectAppium 自动化:出现错误 - org.openqa.selenium.WebDriverException:无法解析远程响应:参数不正确
【发布时间】:2017-09-26 20:53:44
【问题描述】:

我正在尝试使用 Java 进行 appium android 自动化。下面是代码:

public class Main {

AppiumDriver driver;

@Before
public void setup() throws Exception{
    DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
    desiredCapabilities.setCapability("platformVersion","4.4");
    desiredCapabilities.setCapability("platformName","Android");
    desiredCapabilities.setCapability("app","/PATH_TO_APK");
    driver = new AndroidDriver(new URL("http://0.0.0.0:4723/wd/hub"),desiredCapabilities);
}

@After
public void tearDown(){
    driver.quit();
}

@Test
public void firstTest(){
    WebElement element = driver.findElementById("ELEMENT_ID");
    element.click();
}
}

下面是错误

org.openqa.selenium.WebDriverException: Unable to parse remote response: Parameters were incorrect. We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities","sessionId","id","sessionId","id","sessionId","id","sessionId","id","sessionId","id","sessionId","id"]} and you sent ["desiredCapabilities","requiredCapabilities","capabilities"]
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'
System info: host: 'WGB01ML106163.local', ip: 'fe80:0:0:0:3e15:c2ff:febe:8ea0%en0', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.11.6', java.version: '1.8.0_131'
Driver info: driver.version: AndroidDriver

以前有人见过这个错误吗?在谷歌上找不到任何东西。请帮忙。

【问题讨论】:

    标签: java android selenium-webdriver automated-tests appium


    【解决方案1】:

    我们还需要在功能中传递“设备名称”。

     desiredCapabilities.setCapability("deviceName","Android");
    

    另外,如果您在移动端进行混合/原生应用测试,我们还需要传递 appPackage 和 appActivity。因此,结合所有强制功能,总体所需功能将与此类似。

    public void setup() throws Exception
    {
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("deviceName","ANDROID");
    capabilities.setCapability("platformVersion", "5.1");
    capabilities.setCapability("platformName",Constant.appPlatform);
    capabilities.setCapability("app", app.getAbsolutePath());
    capabilities.setCapability("appPackage", Constant.appPackage);
    capabilities.setCapability("appActivity",Constant.appActivity);
    
    driver = new AndroidDriver(new URL("http://127.0.0.1:4727/wd/hub"),capabilities);
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    }
    

    获取 appActivity/appPackage 的简单方法是联系您的开发人员。如果不可能,请检查此=>appActivity/appPackage

    有关各种功能的更多详细信息,请参见此处。

    https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md

    【讨论】:

    • 我添加了“deviceName”功能,但仍然看到同样的错误。
    • @Anshul 已更新答案。检查并告诉我它是否有效
    • 感谢 Santhosh 的帮助。我的 appium 版本是 1.5.3。我将 appium 升级到最新版本 1.6.4 后,此问题得到解决。
    猜你喜欢
    • 2017-11-18
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 2021-07-01
    • 2021-09-24
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多