UnsupportedCommandException: метод еще не реализован ошибка с гибридным приложением Android с использованием Appium - PullRequest
1 голос
/ 03 апреля 2019

Я пишу автоматизированные тестовые случаи для гибридного приложения Android с использованием Appium. Я использую строку кода ниже, чтобы установить курсор на раскрывающемся / всплывающем окне:

Set<String> stringSet =  webDriver.getWindowHandles();

Однако, это дает ошибку ниже как:

org.openqa.selenium.UnsupportedCommandException: Method has not yet been implemented.

webdriver является объектом AppiumDriver .

Это Гибрид (Кордова) Мобильное приложение .

Моя трассировка стека:

Apr 03, 2019 4:20:21 PM org.openqa.selenium.remote.ErrorCodes toStatus
INFO: HTTP Status: '404' -> incorrect JSON status mapping for 'unknown method' (405 expected)

org.openqa.selenium.UnsupportedCommandException: Method has not yet been implemented
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'VIKSHAH-M-F1AR', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_152-release'
Driver info: io.appium.java_client.AppiumDriver

Обновление : После обновления JDK

Apr 10, 2019 12:47:45 PM org.openqa.selenium.remote.ErrorCodes toStatus
INFO: HTTP Status: '404' -> incorrect JSON status mapping for 'unknown method' (405 expected)

org.openqa.selenium.UnsupportedCommandException: Method has not yet been implemented
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'VIKSHAH2-M-F1AR', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_202'
Driver info: io.appium.java_client.android.AndroidDriver

Кто-нибудь сталкивался с подобной проблемой? Есть ли другой способ проверить выпадающий список с помощью Appium?

Ответы [ 3 ]

0 голосов
/ 03 апреля 2019

Вы включили setWebContentsDebuggingEnabled свойство?К сожалению, в вашей сборке приложения есть дополнительный шаг.Как описано в документации по удаленной отладке Android, необходимо установить значение true для свойства setWebContentsDebuggingEnabled элемента android.webkit.WebView.

Если еще не включено, попросите разработчиков установить значение true перед созданием сборки.

0 голосов
/ 10 апреля 2019

Ниже приведен код, который я использую для переключения на первое веб-представление (не нативное представление) из доступных контекстов.Если вы не уверены, что именно содержат контекстные тексты, напишите код для захвата массива и отображения всех значений.

@Nullable
private String getWebContext() {
    ArrayList<String> contexts = new ArrayList<String>(driver.getContextHandles());
    for (String context : contexts) {
        if (!context.equals("NATIVE_APP")) {
            return context;
        }
    }
    return null;
}
0 голосов
/ 03 апреля 2019

Это сообщение об ошибке ...

org.openqa.selenium.remote.ErrorCodes toStatus INFO: HTTP Status: '404' -> incorrect JSON status mapping for 'unknown method' (405 expected)
org.openqa.selenium.UnsupportedCommandException: Method has not yet been implemented Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host: 'VIKSHAH-M-F1AR', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.3', java.version: '1.8.0_152-release' Driver info: io.appium.java_client.AppiumDriver

... означает, что вариант WebDriver не смог взаимодействовать с нужными WebElement (s) .

Ваша главная проблема - несовместимость между версиями двоичных файлов, которые вы используете следующим образом:

  • Ваша Selenium Client версия 3.141.59 из 2018-11-14T08: 17: 03 , который является недавним выпуском.
  • Ваша JDK версия 1.8.0_152-release , который довольно старый и древний .

Таким образом, существует явное несоответствие между Selenium Client v3.141.59 и JDK v1.8.0_152-release.

Решение

  • Обновление JDK до текущих уровней JDK 8u202 .
...