Ошибка при использовании 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
Проверьте, включены ли они в разделе "Параметры разработчика" в телефоне.
- Проверять приложения через USB
- Просмотр атрибутов
- 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.. это работает для меня