AndroidViewClient是否具有类似的用法device.getHierarchyViewer()。focusedledWindowName?

时间:2015-01-05 07:58:03

标签: androidviewclient

当我们使用MonkeyRunner进行Android UI分析时,我们可以使用device.getHierarchyViewer()。focusedledWindowName获取当前屏幕'窗口名称很快。

然后我们可以使用窗口名做一些基本的UI判断或分析。

对于AndroidViewClient(git@github.com:dtmilano / AndroidViewClient.git),它有类似的用法吗? 感谢。

device = MonkeyRunner.waitForConnection()
hViewer = device.getHierarchyViewer()
win_name = hViewer.getFocusedWindowName()

1 个答案:

答案 0 :(得分:1)

我认为它回答了here

但是,我认为,由于受欢迎的需求,我将为AdbClient添加一种更直接的方法。也许AdbClient.getFocusedWindowName()要保持一致。此窗口与View层次结构没有关系,这就是为什么我认为它不适合作为ViewClient的公开方法。

欢迎提出意见。

修改

好消息,AndroidViewClient 8.27.1 现在功能AdbClient.getWindows()AdbClient.getFocusedWindows()AdbClient.getFocusedWindowName()

你可以像这里一样使用它:

#! /usr/bin/env python
# -*- coding: utf-8 -*-
'''
Copyright (C) 2013-2014  Diego Torres Milano
Created on 2015-01-05 by Culebra v8.27.1
                      __    __    __    __
                     /  \  /  \  /  \  /  \ 
____________________/  __\/  __\/  __\/  __\_____________________________
___________________/  /__/  /__/  /__/  /________________________________
                   | / \   / \   / \   / \   \___
                   |/   \_/   \_/   \_/   \    o \ 
                                           \_____/--<
@author: Diego Torres Milano
@author: Jennifer E. Swofford (ascii art snake)
'''


import re
import sys
import os

try:
    sys.path.insert(0, os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
    pass

from com.dtmilano.android.viewclient import ViewClient


kwargs1 = {'ignoreversioncheck': False, 'verbose': False, 'ignoresecuredevice': False}
device, serialno = ViewClient.connectToDeviceOrExit(**kwargs1)

print device.getWindows()
print device.getFocusedWindow()
print device.getFocusedWindowName()
顺便说一下,我很想知道你如何使用这些功能。是否要检查先决条件?