我认为有一个与Android权限有关的问题,但是我需要您的一些专业知识来确认。
我已经在一些呼叫处理方案中测试了旧的Samgung J5(未植根)与Android 8.1.0,带有UiAutomator2的Appium 1.10.0和ADB 10.0.40(处于管理模式)的情况,在这些情况下,我需要检查确定的显示元素(身份,通话时间,激活的保持,转移信息等)显示给用户。我已经看到了多种解决方案来执行此任务,包括使用adb来执行此任务,但是仅使用显示元素(GUI)来专注于此问题。
方案,用户接听电话。
com.android.incallui.service.SecCallPopupService生效:
当我尝试检查com.android.incallui.service.SecCallPopupService窗口时,Appium找不到它:
都不在UiAutomatorViewer上:
在Comment链接(xml转储)上,您可以看到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)在Appium Studio上执行doind对象监视之后,一些logcat日志:
分析日志记录,我们可以看到Appium工作室正在请求
{“ response”:“ true”,“ params”:[],“ command”:“ richDump”},该包使用
某种节点:android.view.accessibility.AccessibilityNode。也许使用Acessibility Tree节点之类的方法来获取elements?我不知道...
我已经阅读了关于Stackoverflow的一些类似问题,但是一些解决方案涉及将设备植根或使用de ADB(这不是一种选择), Tryng to su root the device and chmod 777 /data/local/tmp,但如果确实有必要,那么Appium Studio如何读取所有显示元素?
您知道其他解决方案,该解决方案允许我在不root设备的情况下获取所有接口元素吗?我怎么称呼“ richDump”?
谢谢您的帮助。