当我们使用MonkeyRunner进行Android UI分析时,我们可以使用device.getHierarchyViewer()。focusedledWindowName获取当前屏幕'窗口名称很快。
然后我们可以使用窗口名做一些基本的UI判断或分析。
对于AndroidViewClient(git@github.com:dtmilano / AndroidViewClient.git),它有类似的用法吗? 感谢。
device = MonkeyRunner.waitForConnection()
hViewer = device.getHierarchyViewer()
win_name = hViewer.getFocusedWindowName()
答案 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()
顺便说一下,我很想知道你如何使用这些功能。是否要检查先决条件?