Возвращенное значение не может быть преобразовано в WebElement: {element-6066-11e4-a52e-4f735466cecf = 1, ELEMENT = 1} в Android - PullRequest
0 голосов
/ 15 марта 2019

Отображение ошибки как:
Returned value cannot be converted to WebElement: {element-6066-11e4-a52e-4f735466cecf=1, ELEMENT=1}

при выполнении кода:

DesiredCapabilities c=new DesiredCapabilities();
c.setCapability(CapabilityType.BROWSER_NAME, "");
c.setCapability("deviceName", "871cd2f2");
c.setCapability("platformName", "Android");
c.setCapability("platformversion", "4.3");
c.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "60");
c.setCapability("appPackage","com.android.vending");
c.setCapability("appActivity","com.google.android.finsky.activities.MainActivity");
URL U=new URL("http://127.0.0.1:4723/wd/hub");      
WebDriver driver=new AndroidDriver(U,c);        
//AppiumDriver d=new AndroidDriver(U,c);        
Thread.sleep(10000);        
MobileElement m=driver.findElement(By.xpath("//*[@content-desc='Search']"));
m.click();      
m.sendKeys("edthesis");

Ошибка консоли Appium:

[Appium] Добро пожаловать в Appium v1.10.0 [Appium] Appium REST http интерфейс прослушиватель запущен 0.0.0.0:4723 [HTTP] -> POST / wd / hub / session [HTTP] { "desiredCapabilities": { "appActivity": "com.google.android.finsky.activities.MainActivity", "appPackage": "com.android.vending", "browserName": "", "DEVICENAME": "871cd2f2" "newCommandTimeout": "60", "platformName": "Android", "platformversion": "4,3"}, "Возможности": { "desiredCapabilities": { "appActivity": "com.google.android.finsky.activities .MainActivity», "appPackage": "com.android.vending", "browserName": "", "DEVICENAME": "871cd2f2", "newCommandTimeout": "60", "platformName": "Android", "platformversion" : "4.3"}, "firstMatch": [{ "browserName": "", "platformName": "андроид"}]}} [W3C] Вызов AppiumDriver.createSession () с аргументами: [{ "AppActivity": "com.google.android.finsky.activities.MainActivity", "appPackage": "com.android.vending", "browserName": "", "DEVICENAME": "871cd2f2", "newCommandTimeout" : "60", "platformName": "Android", "platformversion": "4,3"}, нулевой { "desiredCapabilities": { "appActivity": "com.google.android.finsky.activities.MainActivity", "appPackage ":" com.android.vending», "browserName": "", "DEVICENAME": "871cd2f2", "newCommandTimeout": "60", "platformName": "Android", "platformversion": "4,3"}, "firstMatch": [{ "browserName": "", "platformName": "андроид"}]}] [BaseDriver] Событие 'newSessionRequested' зарегистрировано в 1552640850731 (14:37:30 GMT + 0530 (стандартное время Индии)) [Appium] Не удалось проанализировать W3C Возможности: «deviceName» не может быть пустым [Appium] Попытка исправить W3C возможности, объединяя их с заглавными буквами JSONWP [BaseDriver] возможности [ "AppActivity", "appPackage", "DEVICENAME", "newCommandTimeout", "platformversion"] не являются стандартными возможностями и должны иметь префикс расширения [BaseDriver] Числовая возможность передается в виде строки. Функциональность может быть скомпрометированным. [Appium] Создание нового сеанса AndroidDriver (v4.8.0) [Appium] Возможности: [Appium] appActivity: com.google.android.finsky.activities.MainActivity [Appium] appPackage: com.android.vending [Appium] имя устройства: 871cd2f2 [Appium] newCommandTimeout: 60 [Appium] версия платформы: 4.3 [Appium] browserName: [Appium] platformName: android [BaseDriver] W3C средства {"AlwaysMatch": {"appium: app ... и MJSONWP желательно были предоставлены возможности {"appActivity": "com.google .... [BaseDriver] Создание сеанса с возможностями W3C: {"alwaysMatch": {"appium: app ... [BaseDriver] Числовая возможность передается в виде строки. Функциональность может быть скомпрометированным. [BaseDriver] Возможность 'newCommandTimeout' изменена от строки ('60') до целого числа (60). Это может вызвать неожиданное поведение [BaseDriver] Следующие возможности были предоставлены, но не признано appium: платформа версия. [BaseDriver] Сессия создана с идентификатором сеанса: dd472778-35d6-45db-9ccf-57328cb2aa3f [AndroidDriver] Версия Java: 1.8.0_151 [ADB] Проверка наличия ADB [ADB] Переменная среды ANDROID_HOME не установлена ​​на Android SDK путь к корневому каталогу. ANDROID_HOME требуется для совместимости с SDK 23+. Проверка по PATH для adb. [ADB] Использование ADB из D: \ Appium \ Sdk \ tools \ adb.exe [ADB] [AndroidDriver] Извлечение устройства list [ADB] Попытка найти подключенное устройство Android [ADB] Получение подключенные устройства ... [ADB] 1 устройство (а) подключено [AndroidDriver] Использование device: 871cd2f2 [ADB] Установка идентификатора устройства на 871cd2f2 [ADB] Выполняется 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell getprop ro.build.version.sdk '[ADB] Текущее свойство устройства 'ro.build.version.sdk': 18 [ADB] Уровень API устройства: 18 [AndroidDriver] Файл приложения не был указан, вместо этого мы собираемся запустить com.android.vending прямо на устройстве [AndroidDriver] Проверка есть ли пакет на устройстве [ADB] Выполняется 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell pm listпакеты com.android.vending '[AndroidDriver] Запуск сеанса Android [ADB] Запуск 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 устройство ожидания '[ADB] работает' D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell echo ping '[AndroidDriver] Загрузка настроек apk в устройство ... [ADB] Получение статуса установки для io.appium.settings [ADB] Запуск 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell dumpsys пакет io.appium.settings '[ADB]' io.appium.settings 'установлен [ADB] Получение информации о пакете для 'io.appium.settings' [ADB] Запуск 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell dumpsys package io.appium.settings '[ADB] Проверка наличия aapt [ADB] Переменная среды ANDROID_HOME не установлена ​​в корневой каталог Android SDK путь к каталогу ANDROID_HOME требуется для совместимости с SDK 23+. Проверка вдоль пути для AAPT. [ADB] Использование aapt из D: \ Appium \ Sdk \ build-tools \ 26.0.1 \ aapt.exe [ADB] [ADB] Версия Имя установленного «io.appium.settings» больше или равно название версии приложения ('2.11.0'> = '2.11.0') [ADB] Нет необходимости установить / обновить 'C: \ Users \ preethi.g \ AppData \ Local \ appium-Desktop \ приложение-1.10.0 \ ресурсы \ приложения \ node_modules \ io.appium.settings \ APK-\ settings_apk-debug.apk' [ADB] Запуск оболочки 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 ps '[ADB] Уровень API устройства: 18 [AndroidDriver] Предоставление android.permission.SET_ANIMATION_SCALE, CHANGE_CONFIGURATION, ACCESS_FINE_LOCATION по pm grant [ADB] Предоставление разрешений [ "Android.permission.SET_ANIMATION_SCALE", "android.permission.CHANGE_CONFIGURATION", "android.permission.ACCESS_FINE_LOCATION"] to 'io.appium.settings' [ADB] Получил следующие чанки команды выполнить: [[ "Вечер", "Грант", "io.appium.settings", "android.permission.SET_ANIMATION_SCALE", ";", "вечер", "Грант", "io.appium.settings", "android.permission .CHANGE_CONFIGURATION», ";", "вечер", "грант", "io.appium.settings", "android.permission.ACCESS_FINE_LOCATION", ";"]] [ADB] Запуск оболочки 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 pm grant io.appium.settings android.permission.SET_ANIMATION_SCALE \; pm grant io.appium.settings android.permission.CHANGE_CONFIGURATION \; вечера грант io.appium.settings android.permission.ACCESS_FINE_LOCATION \;» [ADB] Уровень API устройства: 18 [ADB] Работает 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 оболочка am -w -n -n io.appium.settings / .Settings -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 '[ADB] API устройства уровень: 18 [ADB] Запуск 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s Настройки оболочки 871cd2f2 поставить безопасный mock_location 1 '[Logcat] Запуск logcat capture [ADB] Получение версии платформы устройства [ADB] Работает 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell getprop ro.build.version.release '[ADB] Текущее свойство устройства 'ro.build.version.release': 4.3 [ADB] работает 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s размер wm оболочки 871cd2f2' [ADB] Запуск оболочки 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 getprop ro.product.model '[ADB] Текущее свойство устройства' ro.product.model ': SAMSUNG-SGH-I747 [ADB] Работает 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell getprop ro.product.manufacturer '[ADB] Текущее устройство свойство 'ro.product.manufacturer': Samsung [AndroidDriver] Нет приложения отправлено, не анализируется пакет / активность [AndroidDriver] Нет приложения возможность. Предполагая, что это уже на устройстве [ADB] Начало установки статус для com.android.vending [ADB] работает 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell dumpsys package com.android.vending '[ADB]' com.android.vending 'установлен [ADB] Запуск 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell am force-stop com.android.vending '[ADB] работает 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell pm clear com.android.vending '[AndroidDriver] Выполнен быстрый сброс на установлено приложение com.android.vending (остановите и очистите)[AndroidBootstrap] Наблюдение за отключением начальной загрузки [ADB] Переадресация система: 4724 к устройству: 4724 [ADB] работает 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 forward tcp: 4724 tcp: 4724 '[UiAutomator] Запуск UiAutomator [UiAutomator] Переход к состояние «запускается» [UiAutomator] Разбор баночки uiautomator [UiAutomator] Найденное имя фляги: 'AppiumBootstrap.jar' [ADB] Выполняется 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 push C: \ Users \ preethi.g \ AppData \ Local \ appium-Desktop \ приложение-1.10.0 \ ресурсы \ приложения \ node_modules \ appium-андроид-драйвер \ самозагрузки \ Bin \ AppiumBootstrap.jar / data / local / tmp / '[ADB] Попытка уничтожить все процессы uiautomator [ADB] Получение всех процессов с помощью uiautomator [ADB] 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell ps' [ADB] Нет Обнаружен процесс 'uiautomator' [UiAutomator] Запуск UIAutomator [ADB] Создание подпроцесса ADB с аргументами: [ "-P", 5037, "- с", "871cd2f2", "оболочка", "uiautomator", "RunTest", "AppiumBootstrap.jar", "- с", "io.appium.android.bootstrap.Bootstrap », "- е", "PKG", "com.android.vending", "- е", "disableAndroidWatchers", ложные, "- е", "acceptSslCerts", ложь] [UiAutomator] Переход в состояние «онлайн» [AndroidBootstrap] Android теперь подключено загрузочное гнездо [ADB] работает 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 окно дампа оболочки' [AndroidBootstrap] [BOOTSTRAP LOG] [отладка] json загрузка завершена. [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Зарегистрированные наблюдатели сбоев. [AndroidBootstrap] [BOOTSTRAP LOG] [отладка] Клиент подключен [AndroidDriver] Экран уже разблокирован, ничего не делая [ADB] Устройство Уровень API: 18 [ADB] Запуск 'D: \ Appium \ Sdk \ tools \ adb.exe -P 5037 -s 871cd2f2 shell am start -W -n com.android.vending / com.google.android.finsky.activities.MainActivity -S '[Appium] Новый сеанс AndroidDriver успешно создан, сеанс dd472778-35d6-45db-9ccf-57328cb2aa3f добавлен в основной список сеансов [BaseDriver] Событие 'newSessionStarted' зарегистрировано в 1552640881307 (14:38:01 GMT + 0530 (стандартное время Индии)) [W3C (dd472778)] Кэшировал значение протокола 'W3C' для нового сеанса dd472778-35d6-45db-9ccf-57328cb2aa3f [W3C (dd472778)] Ответ на клиент с результатом driver.createSession (): { "Возможности": { "платформа": "LINUX", "webStorageEnabled" ложь "takesScreenshot": правда, "javascriptEnabled": правда, "databaseEnabled" ложь "networkConnectionEnabled": правда, "locationContextEnabled": ложь, "предупреждения": {}, "желательные": { "browserName": "", "platformName": "андроид", "appActivity": "com.google.android.finsky.activities.MainActivity", "appPackage":» com.android.vending " "DEVICENAME": "871cd2f2", "newCommandTimeout": 60, "platformversion": "4.3"}, "browserName": "", "platformName": "андроид", "appActivity":" com.google.android.finsky.activities.MainActivity», "appPackage": "com.android.vending", "DEVICENAME": "871cd2f2", "newCommandTimeout": 60, "platformversion": "4,3", "deviceUDID" : "871cd2f2", "platformVersion": "4,3", "deviceScreenSize": "720x1280", "deviceModel": "SAMSUNG-SGH-I747", "deviceManufacturer": "Samsung"}} [HTTP] <- POST / wd / hub / session 200 30591 мс - 855 [HTTP] [HTTP] -> POST / wd / hub / session / dd472778-35d6-45db-9ccf-57328cb2aa3f / element [HTTP] {"value": "// [@ content-desc = 'Search']", "using": "xpath"} [W3C (dd472778)] Вызов AppiumDriver.findElement () с аргументами: [ "XPath", "// [@ контент-DESC = 'Поиск']", "dd472778-35d6-45db-9ccf-57328cb2aa3f"] [BaseDriver] Допустимые стратегии локатора для этого запроса: xpath, id, имя класса, идентификатор доступности, -iaid uiautomator [BaseDriver] Ожидание до 0 мс для условия [AndroidBootstrap] Отправка команды в Android: { "ЦМД": "действие", "действие": "найти", "PARAMS": { "Стратегия": "XPATH", "селектор": "// [@ контента убывание = 'Поиск'] », "контекст": "", "несколько" ложь}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Получил данные от клиента: { "ЦМД": "действие", "действие": "найти", "PARAMS": { "Стратегия": "XPATH", "селектор": "// [@ контента убывание = 'Поиск'] », "контекст": "", "несколько" ложь}} [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Получил команду типа ACTION[AndroidBootstrap] [BOOTSTRAP LOG] [debug] Получено действие команды: найти [AndroidBootstrap] [BOOTSTRAP LOG] [отладка] Поиск '// * [@ content-desc =' Search ']' используя 'XPATH' с contextId: '' множественный: false [AndroidBootstrap] [BOOTSTRAP LOG] [отладка] Использование: UiSelector [CLASS = android.widget.ImageView, INSTANCE = 6] [AndroidBootstrap] [BOOTSTRAP LOG] [debug] Возвращаемый результат: {"value": {"ELEMENT": "1"}, "status": 0} [AndroidBootstrap] Получено результат команды из начальной загрузки [W3C (dd472778)] Ответ клиенту с результатом driver.findElement (): {"element-6066-11e4-a52e-4f735466cecf": "1", "ELEMENT": "1"} [HTTP] <- POST / wd / hub / session / dd472778-35d6-45db-9ccf-57328cb2aa3f / element 200 1977 мс - 67 [HTTP] </p>

1 Ответ

0 голосов
/ 17 марта 2019

Сначала попробуйте получить соответствующий код из самого сеанса Appium Inspector. Вы можете выполнить свои действия на подключенном устройстве и записать их, чтобы сгенерировать правильный код для поиска соответствующего элемента.

Я попробовал ниже на Android с моим приложением. Надежда может помочь вам

DesiredCapabilities c=new DesiredCapabilities();
c.setCapability(CapabilityType.BROWSER_NAME, "");
c.setCapability("deviceName", "871cd2f2");
c.setCapability("platformName", "Android");
c.setCapability("platformversion", "4.3");

// Android version is 4.3, try with heigher version emulator as well

c.setCapability("automationName", "UiAutomator2");
c.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, "60");
c.setCapability("appPackage","com.android.vending");
c.setCapability("appActivity","com.google.android.finsky.activities.MainActivity");
URL U=new URL("http://127.0.0.1:4723/wd/hub");  

AppiumDriver driver = new AppiumDriver(U,c); 

Thread.sleep(10000);  

MobileElement m = driver.findElementByXpath("//*[@content desc='Search']"));
m.click();      
m.sendKeys("edthesis");
...