Appium和Virtual Android Device所需的功能:SessionNotCreatedException错误

时间:2017-03-11 15:04:36

标签: android selenium automation appium

所以我正在尝试为在Android模拟器(avd)中运行的Android应用程序编写自动化测试脚本,但我在Appium日志中收到以下错误:

[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"]

我的设置是:

  1. Android Studio 162(带有sdk,请注意,此最新版本不再包含'android'命令,Android虚拟设备的创建通过工具> Android> AVD Manager完成)
  2. IntelliJ 2016.3.5(用于编写自动化测试脚本)
  3. selenium-java 3.3.0(必需jar)
  4. appium java client 4.1.2(必需的jar)
  5. appium server 1.6.3(通过运行'appium'在nodejs cli中执行)
  6. Android虚拟设备版本5.1 Lollipop
  7. 在cmd中运行'adb devices'命令给我

    List of devices attached
    emulator-5554   device
    

    所需的功能设置是

    @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错误:

    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'
    

    我现在陷入困境,不知道该怎么做。

3 个答案:

答案 0 :(得分:1)

我无法像使用OP那样使用selenium 3.0.1。我使用了selenium grid和appium。最终对我有用的是使用appium@1.6.4-beta,它适用于高达3.1.0版本的硒。

答案 1 :(得分:1)

我在评论中提到,我最终使用了旧版本的Selenium,以便获得与Appium 1.6.3所期望的匹配的所需功能。就我而言,它是Selenium Java Client 3.0.1 + Appium 1.6.3。

答案 2 :(得分:0)

org.openqa.selenium.SessionNotCreatedException:

只有当我们无法在appium和移动设备之间建立时,才会出现上述异常。

有可能apk路径错误,因为它在日志app=src//main//resources//test.apk中显示,但它应该是存储目录的路径,如c://mobile//apk//test.apk,请更正。

您还没有在 DesiredCapabilities 中提及 appPackage appActivity ,如下所示。

// specify the application package that we copied from appium

    capabilities.setCapability("appPackage", "com.testapp");

    // specify the application activity that we copied from appium

    capabilities.setCapability("appActivity", ".HomeScreenActivity");

您已在设备上安装.apk时需要以上参数。在创建会话时包含这些功能总是好的。

如果它不适合你,请告诉我。