Ошибка при использовании UIAutomatorviewer для тестирования приложения Android в Appium

Мне нужно автоматизировать приложение для Android, я делаю то же самое через Appium. Проблема, с которой я столкнулась, - это запуск сервера Appium, приложение устанавливается в эмулятор 4.4.2 и для проверки того, что я использую UIAutomatorviewer, который поставляется по умолчанию с SDK. Но, проверяя элемент приложения, я получаю ошибку! [Введите описание изображения здесь] [1]

Error obtaining UI hierarchy
Reason:Error while obtaining UI hierarchy XML file.com.android.ddmlb.SynchException.Remote object doesn't exist.

Я попытался найти решение, чтобы я мог проверить элемент, чтобы я мог script, но тщетно.

  • Кто-нибудь может рассказать, как исправить проблему, чтобы я мог проверять элементы?
  • Есть ли другой способ проверить элемент в приложении, кроме использования средства просмотра UIAutomator?

Ответ 1

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

сервер appium запущен, и мы пытаемся сделать снимок экрана с помощью uiautomatorviewer.

Итак, всякий раз, когда вы хотите использовать uiautomatorviewer, убедитесь, что сервер находится в состоянии остановки.

Ответ 2

Я исправил ту же проблему, используя следующие методы.

(1) Подключите Android-устройство к машинам разработки;

(2) Перейдите в командную строку в терминале или в командной строке DOS для Windows;

(3) Использование "adb shell" в ваших устройствах Android;

(4) Измените пользователя на root путем ввода "su root" в командной строке;

(5) Измените право доступа на /data/local/tmp на вход "chmod 777/data/local/tmp";

(6) Вернитесь к uiautomatorviewer и снова сделайте снимок экрана, ошибка должна исчезнуть;

Я думаю, что некоторые файлы не могут быть доступны, если они не имеют права в/data/local/tmp.

Ответ 3

Убедитесь, что все на вашем экране статично. И мигающий курсор ввода также не допускается. Любые действия покраски остановят uiautomator от сброса текущего пользовательского интерфейса.

Вы можете протестировать, используя следующую команду adb:

adb shell uiautomator dump /data/local/tmp/uidump.xml

если появляется сообщение ERROR: could not get idle state., вы страдаете от этой проблемы.

См. строки 87 и 101 DumpCommand:

try {
  ...   
  uiAutomation.waitForIdle(1000, 1000 * 10);
  ...
} catch (TimeoutException re) {
  System.err.println("ERROR: could not get idle state.");
  return;
}

Ответ 4

Самое простое решение..

Перезагрузите устройство. Перезапустите uiautomatorviewer.

Работал как прелесть для меня....: P

Ответ 5

Остановить сервер Appium. Затем повторите попытку. Он работает.

Ответ 6

Отвечайте на свой вопрос # 2 Вы можете проверить приложение Android прямо с вашего реального устройства Android.

Вам необходимо:

  • Подключите Android-устройство к компьютеру/ноутбуку.
  • Перейдите в Настройки устройства Android → Включите параметры разработчика и Android debbuging

Пожалуйста, смотрите здесь:
Android device settings

  • Запустите приложение, которое вы хотите проверить на своем устройстве Android.

  • Откройте браузер Chrome на своем компьютере/ноутбуке и сделайте правый щелчок → Другие инструменты → Осмотрите устройства → Нажмите на свое устройство → (Нажмите на Android-устройство OK для авторизации) → Нажмите Inspect

Пожалуйста, смотрите здесь: Осмотрите все, что с вашего устройства Android

Что это. Надеюсь, это поможет!

Ответ 7

У меня была такая же проблема, потому что я использовал adbd insecure. Поэтому я просто отключил "adbd insecure" и перезагрузил uiautomatorviewer, все в порядке.

Ответ 8

В случае укорененных устройств: Включите root-доступ в опции разработчика для adb. Перезапустить adb как root

Ответ 9

мы должны использовать устройство с уровнем API более 17 или желе bean

Ответ 10

Я потратил больше недели, чтобы решить эту проблему. Когда вы подключаете свое устройство и используете ASM 3.0, при проецировании экрана откройте UIAutomator, чтобы захватить текущий экран Android. Без Апиума он должен захватить. Для использования Android Studio вместо android sdk. Удалите и переустановите Android Studio. Теперь он работает идеально для меня.

Ответ 11

Способ обхода ОШИБКИ:

не смог получить состояние бездействия.

Используя uiautomator, вы получите uix и снимок экрана.

public class DeviceMethods extends UiAutomatorTestCase {
public void dump(){


    try {
        getUiDevice().dumpWindowHierarchy("window_dump.uix") ;
        getUiDevice().takeScreenshot(new File("/data/local/tmp/window_dump.png"));


    } catch (Exception e) {

    }

}

вам нужно создать банку uiautomator и нажать ее в /data/local/tmp

используйте этот учебник о том, как использовать uiautomator

после того, как вы получите файлы, просто откройте их в uiautomatorviewer

Ответ 12

У меня тоже такая же проблема (также, если Appium Server не был запущен). После переключения на него работала команда "Отключить/Отключить USB-отладка".

Ответ 13

Я решил его решить.

Я закрыл Appium Server, запущенный на моей машине, и снова открыл его. Позже я открыл uiautomater, и это сработало для меня.

Ответ 14

Что сработало для меня:

остановить appium
открыть эмулятор устройства (протестировано с Android 7.1.1)
перейти в настройки > параметры разработчикa > Включить проверку атрибута просмотра
откройте оболочку на компьютере, cmd или терминал в зависимости от вашей ОС
введите следующие команды:
adb shell
su
cd/data
cd/local
chmod 777 tmp

запустите uiautomatorviewer
возьмите скриншот xml

"su chmod 777/data/local/tmp" не работал у меня, поэтому я просверлился, и это сработало. Я предполагаю, что вы должны сделать это в эмуляторе, а не в физическом устройстве, если устройство не внедрено. ¯\_ (ツ) _/¯

Lotsa Luck!

Ответ 15

Это происходит потому, что adb использует порт и блокируется сервером appium.

Я нашел лучшее решение для этого

Убейте adb.exe из процессов панели задач и попробуйте запустить uiautomatorviewer снова

Ответ 16

Проверьте, включены ли они в разделе "Параметры разработчика" в телефоне.

  1. Проверять приложения через USB
  2. Просмотр атрибутов
  3. USB отладки

Ответ 17

1) остановить сервер Appium

2) открыть эмулятор устройства

3) зайдите в настройки> параметры разработчика> включить проверку атрибутов вида

4) варианты разработчика в невидимке? Зайдите в настройки> Нажмите на "Об устройстве/телефоне"> Прокрутите вниз до последней опции (Номер сборки)> Постоянно Нажмите на "Номер сборки" 7 раз> Вы должны получить тост-сообщение "Ты разработчик"> Вернись из этот экран> Вернитесь в настройки> Теперь вы должны увидеть параметры разработчика Нажмите на него> Включить просмотр просмотра атрибутов

5) Вы больше не должны получать это сообщение об ошибке

Ответ 18

Тот, который работает, находится на этом пути:

Android/Sdk/tools/bin/uiautomatorviewer

Вставьте это в свой терминал, и он запустит автоматизатор, который работает

Ответ 19

Я беру тех зрителя, используя командную строку:

adb shell uiauomator dump
adb pull /sdcard/windows_dump.xml

читать эти идентификаторы вручную

Ответ 20

попробуйте выключить и затем включить опцию отладки USB.. это работает для меня