org.openqa.grid.common.exception.GridException: невозможно извлечь возможности из запроса

Когда я использую удаленный веб-драйвер для создания экземпляра, я отлично получаю возвращаемый объект.

Но вместо remotewebdriver, если я использую AndroidDriver, я получаю следующую ошибку. Пожалуйста, помогите.

2018-09-27 12:17:09.712:WARN:osjs.HttpChannel:qtp817406040-14: /wd/hub/session java.io.IOException: org.openqa.grid.common.exception.GridException: Cannot extract a capabilities from the request: {
  "desiredCapabilities": {
    "appPackage": "com.xxxxxxx.ymca",
    "clearSystemFiles": "true",
    "noReset": "true",
    "noSign": true,
    "deviceName": "Altitude",
    "fullReset": "false",
    "version": "",
    "platform": "ANDROID",
    "appWaitDuration": 60,
    "appActivity": "com.ytlcomms.ymca.activities.LoginActivity",
    "newCommandTimeout": 60,
    "automationName": "UiAutomator2",
    "autoGrantPermissions": true,
    "browserName": "android",
    "platformName": "Android"
  },
  "capabilities": {
    "alwaysMatch": {
      "appium:appActivity": "com.ytlcomms.ymca.activities.LoginActivity",
      "appium:appPackage": "com.xxxxxxxx.ymca",
      "appium:appWaitDuration": 60,
      "appium:autoGrantPermissions": true,
      "appium:automationName": "UiAutomator2",
      "browserName": "android",
      "appium:clearSystemFiles": "true",
      "appium:deviceName": "Altitude",
      "appium:fullReset": "false",
      "appium:newCommandTimeout": 60,
      "appium:noReset": "true",
      "appium:noSign": true,
      "platform": "ANDROID",
      "platformName": "android",
      "version": ""
    },
    "firstMatch": [
      {
      }
    ]
  }
}

Вот что говорит трассировка стека:

Caused by: java.lang.IllegalArgumentException: Illegal key values seen in w3c capabilities: [platform, version]

Я использую приведенный ниже код.

RemoteWebDriver getDriver(String appName, String appPackage, String appActivity) {
    DesiredCapabilities androidDcap = DesiredCapabilities.android();
    if (appName.equalsIgnoreCase("YMCA"))
        androidDcap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UiAutomator2");
    androidDcap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
    androidDcap.setCapability(MobileCapabilityType.BROWSER_NAME, "");
    androidDcap.setCapability(MobileCapabilityType.DEVICE_NAME, "Altitude");
    androidDcap.setCapability(MobileCapabilityType.CLEAR_SYSTEM_FILES, true);
    androidDcap.setCapability("autoGrantPermissions", "true");
    androidDcap.setCapability(MobileCapabilityType.NO_RESET, true);
    androidDcap.setCapability(MobileCapabilityType.FULL_RESET, false);
    androidDcap.setCapability(AndroidMobileCapabilityType.NO_SIGN, true);
    androidDcap.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS, true);
    androidDcap.setCapability(AndroidMobileCapabilityType.APP_WAIT_DURATION, 60);
    androidDcap.setCapability("newCommandTimeout", 60);
    androidDcap.setCapability("appPackage", appPackage);
    androidDcap.setCapability("appActivity", appActivity);
    try {
        if (System.getProperty("location").equalsIgnoreCase("local")) {
            driver = new RemoteWebDriver(new URL("http://127.0.0.1:4651/wd/hub"), androidDcap);
        } else {
            driver = new RemoteWebDriver(new URL(PropertyHelper.getProperties("REMOTE_HUB_URL")), androidDcap);
        }
    } catch (Exception e) {
        logger.error("Driver instantiating failed", e);
    }
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    return driver;
}

Версия клиента Appium Java: 6.1.0 Автономная версия Selenium: 3.14.0


person Prakash P    schedule 27.09.2018    source источник
comment
Может ли это быть так же просто, как параметр возможностей вашей версии без значения? ()   -  person Bill Hileman    schedule 27.09.2018
comment
@BillHileman Я решил это. Я создал экземпляр желаемых возможностей, как показано ниже: desiredCapabilities dcap = desiredCapabilities.iPhone() Я изменил его на: desiredCapabilities dcap = new desiredCapabilities() Первый подход заключался в автоматическом добавлении этих двух параметров.   -  person Prakash P    schedule 01.10.2018


Ответы (1)


Я была такая же проблема. Решено путем понижения версии selenium-standalone-server-3.13.0

Проблема здесь в том, что вы должны использовать версию selenium-standalone-server, указанную в java-client. В моем случае я использую java-client-6.1.0. для этого нам нужно использовать selenium-standalone-server-3.13.0

см. здесь.

вы можете получить старую версию JAR-файлов здесь

person Jeeva Tamil    schedule 01.03.2019