Невозможно проверить объект com.android.incallui.service.SecCallPopupService на Samsung J5 - PullRequest
0 голосов
/ 03 марта 2019

У меня есть проблема, которая, как мне кажется, связана с разрешениями 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»?

Спасибо за помощь.

...