У меня есть проблема, которая, как мне кажется, связана с разрешениями Android, однако мне нужны некоторые ваши знания, чтобы подтвердить это.
Я тестировал старый Samgung J5 (не рутированный) с Android 8.1.0,Appium 1.10.0 с UiAutomator2 и ADB 10.0.40 (в режиме администрирования) в некоторых сценариях обработки вызовов, где мне нужно проверить, отображаются ли определенные элементы отображения (идентификация, длительность вызова, удержание активировано, информация о передаче и т. Д.) Пользователю.Я видел несколько решений для выполнения этой задачи, в том числе с использованием adb, но давайте сосредоточимся только на этой проблеме, используя только элементы отображения (GUI).
Сценарий, пользователь получает вызов.
В действие вступает com.android.incallui.service.SecCallPopupService:
Пользователь получает вызов
Когда я пытаюсь проверить com.android.incallui.serviceОкно .SecCallPopupService, которое Appium не может найти:
Инспектор приложений
Ни в UiAutomatorViewer:
UitAutomatorViewer
На ссылке «Комментарий» (xml dump) вы можете видеть элементы отображения, которые Appium и UiAutomatorViewer могут «видеть».Тот же результат был получен при использовании команды adb shell uiautomator dump /data/local/tmp/uidump.xml
После этого я установил Appium Studio и опробовал официальный инспектор Appium «Инспектор», и результат был:
Appium Studio Object Spy с полным доступом ко всем элементам дисплея.Очень интригующе ... после некоторого исследования я обнаружил, что следующий пакет com.experitest.uiautomator.test (работает в фоновом режиме) был немедленно установлен на устройстве, когда я щелкнул по функции Object Spy, и я думаю, что это ответственно за получение всех элементов интерфейса,
Ссылка на комментарий (logcat) Некоторые журналы logcat регистрируются после шпиона doind объекта в Appium Studio:
Анализируя logcat, мы видим, что студии Appium запрашивали
{"response": "true"," params ": []," command ":" richDump "} и пакет использует какой-то узел: android.view.accessibility.AccessibilityNode.Может быть, использовать что-то вроде узла Acessibility Tree для получения элементов ?Я не знаю ...
Я читал несколько похожих вопросов о Stackoverflow, но некоторые решения включают в себя рутирование устройства или использование de ADB (это не вариант), Попытка подрулить root устройствои chmod 777 / data / local / tmp , но если это действительно необходимо, то как Appium Studio может читать все элементы экрана?
Знаете ли вы какое-либо другое решение, позволяющее мне получить все элементы интерфейса безрутировать устройство?Как я могу назвать «richDump»?
Спасибо за помощь.