0

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

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

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

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

1 回答 1

1

我想这里已经回答

但是,我认为,由于大众的需求,我将向 AdbClient 添加一个更直接的方法。也许AdbClient.getFocusedWindowName()要保持一致。此窗口与视图层次结构没有关系,这就是为什么我认为它不适合作为 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()

顺便说一句,我很想知道您如何使用这些功能。是检查前置条件吗?

于 2015-01-05T18:11:41.763 回答