【问题标题】:Unable to run any Appium test on real Android device. Bad parameters: BadParametersError: Parameters were incorrect无法在真正的 Android 设备上运行任何 Appium 测试。错误参数:BadParametersError:参数不正确
【发布时间】:2017-05-10 12:18:15
【问题描述】:

我正在尝试在真正的 android 设备上运行 Appium 测试。 java 类是使用 Appium Inspector 生成的:

package some.package;

import io.appium.java_client.android.AndroidDriver;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

public class somename{
    public static void main(String[] args) throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("appium-version", "1.5.3");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("platformVersion", "6.0.1");
        capabilities.setCapability("deviceName", "d61462ac");
        capabilities.setCapability("app", "/Users/myuser/Documents/projects/testapplication/build/outputs/apk/myapp-debug.apk");
        capabilities.setCapability("appPackage", "com.package");
        capabilities.setCapability("appActivity", "com.myapp.LaunchApp");
        WebDriver wd = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
        wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);

        wd.findElement(By.xpath("//android.widget.LinearLayout[1]")).click();
        wd.close();
    }
}

Appium 日志是这样的(启动 Appium 并启动测试脚本):

 Launching Appium with command: 
'/Applications/Appium.app/Contents/Resources/node/bin/node' appium/build/lib/main.js --address "127.0.0.1" --pre-launch --debug-log-spacing --automation-name "Appium" --platform-name "Android" --platform-version "6.0.1" --app "/Users/myuser/Documents/projects/testapplication/build/outputs/apk/myapp-debug.apk" --dont-stop-app-on-reset --device-name "e20123ee"

[Appium] Welcome to Appium v1.5.3

[Appium] Non-default server args:

[Appium]   address: '127.0.0.1'

[Appium]   launch: true
[Appium]   debugLogSpacing: true
[Appium]   platformName: 'Android'
[Appium]   platformVersion: '6.0.1'
[Appium]   automationName: 'Appium'
[Appium]   deviceName: 'd61462ac'
[Appium]   app: '/Users/myuser/Documents/projects/testapplication/build/outputs/apk/myapp-debug.apk'
[Appium]   dontStopAppOnReset: true
[Appium] Deprecated server args:
[Appium]   --platform-name => --default-capabilities '{"platformName":"Android"}'
[Appium]   --platform-version => --default-capabilities '{"platformVersion":"6.0.1"}'
[Appium]   --automation-name => --default-capabilities '{"automationName":"Appium"}'
[Appium]   --device-name => --default-capabilities '{"deviceName":"d61462ac"}'
[Appium]   --app => --default-capabilities '{"app":"/Users/myuser/Documents/projects/testapplication/build/outputs/apk/myapp-debug.apk"}'
[Appium]   --dont-stop-app-on-reset => --default-capabilities '{"dontStopAppOnReset":true}'
[Appium] Default capabilities, which will be added to each request unless overridden by desired capabilities:
[Appium]   platformName: 'Android'
[Appium]   platformVersion: '6.0.1'
[Appium]   automationName: 'Appium'
[Appium]   deviceName: 'd61462ac'
[Appium]   app: '/Users/myuser/Documents/projects/testapplication/build/outputs/apk/myapp-debug.apk'
[Appium]   dontStopAppOnReset: true

[Appium] Appium REST http interface listener started on 127.0.0.1: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 17 ms - 83 

[HTTP] --> POST /wd/hub/session {"desiredCapabilities":{"app":"/Users/myuser/Documents/projects/testapplication/build/outputs/apk/myapp-debug.apk","appPackage":"com.package","appActivity":"com.myapp.LaunchApp","appium-version":"v1.5.3","platformVersion":"6.0.1","platformName":"Android","deviceName":"d61462ac"},"requiredCapabilities":{},"capabilities":{"desiredCapabilities":{"app":"/Users/myuser/Documents/projects/testapplication/build/outputs/apk/myapp-debug.apk","appPackage":"com.package","appActivity":"com.myapp.LaunchApp","appium-version":"v1.5.3","platformVersion":"6.0.1","platformName":"Android","deviceName":"d61462ac"},"requiredCapabilities":{}},"alwaysMatch":{"app":"/Users/myuser/Documents/projects/testapplication/build/outputs/apk/myapp-debug.apk","appPackage":"com.package","appActivity":"com.myapp.LaunchApp","appium-version":"v1.5.3","platformVersion":"6.0.1","platformName":"Android","deviceName":"d61462ac"},"firs

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

我在 OSX 10.11.6、Appium 1.5.3、java-client-5.0.0-BETA5.jar 和 selenium-server-standalone-3.3.1.jar 上使用 Eclipse 4.6.3

使用 Appium 我可以启动应用程序。但我不能从 Eclipse 中做到这一点。

有人可以帮助我了解我的配置错误吗?

【问题讨论】:

  • 一切对我来说都很好......你能检查它在没有“Appium-version”功能的情况下运行吗
  • 我刚刚试了一下,得到了同样的结果。我尝试了一堆注释 setCapability 行的组合,但无法得到不同的结果。

标签: java android selenium-webdriver appium


【解决方案1】:

您应该检查是否安装了所有库。请看下面的图片,如果你有所有的库,请告诉我们。在此之后一切都应该正常工作。

GSON-x.x.x.jar
Java-client-x.x.x-javadoc.jar
Java-client-x.x.x-sources.jar
java-client-x.x.x.jar
selenium-java-x.x.x.zip
selenium-server-standalone-x.x.x.jar

【讨论】:

  • 添加所有这些库解决了我的问题。作为记录,我现在正在使用: - gson-2.8.0.jar - java-client-5.0.0-BETA8-javadoc.jar - java-client-5.0.0-BETA8-sources.jar(替换 BETA5) - java-client-5.0.0-BETA8.jar - selenium-java-3.3.0.zip - selenium-server-standalone-3.4.0.jar(替换 3.3.1)
  • 抱歉没有早点发帖——这实际上解决了我的问题。谢谢。
【解决方案2】:

尝试使用以下更改的功能...

capabilities.setCapability("app", "myapp-debug.apk");

确保该 apk 已安装在您的 Android 设备中。

【讨论】:

    【解决方案3】:

    尝试添加 selenium 独立服务器 2.5。在你的项目中不是 3.3.1。

    Java 客户端的 BETA4 仅适用于版本 3.2 之前的 Selenium。

    BETA5 支持 3.2+

    【讨论】:

      猜你喜欢
      • 2017-04-04
      • 2017-03-23
      • 2017-02-22
      • 2016-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多