1

我正在使用monkeyrunner 测试Android UI。我成功地使用 startActivity(component) 使用 MonkeyRunner 启动了一项活动。但现在我想使用以下代码在我的 UI 上单击一个名为“示例”的按钮:

device.startActivity(组件=运行组件)

vc=ViewClient(设备)

vc.dump()

当我运行这个 python 脚本时,在到达这一行时,我的脚本以错误结束

vc=ViewClient(设备)

TypeError: _ init () 至少需要 3 个参数(2 个给定)

我究竟做错了什么?

提前致谢

4

2 回答 2

2

可以在monkey runner中使用以下行按下名称为Entry的视图

vc=ViewClient.findViewWithText('Entry')
vc.touch()
于 2012-12-19T19:05:05.337 回答
0

这是 ViewClient 的初始化签名和 epydoc:

def __init__(self, device, serialno, adb=None, autodump=True, localport=VIEW_SERVER_PORT, remoteport=VIEW_SERVER_PORT, startviewserver=True):
    '''
    Constructor

    @type device: MonkeyDevice
    @param device: The device running the C{View server} to which this client will connect
    @type serialno: str
    @param serialno: the serial number of the device or emulator to connect to
    @type adb: str
    @param adb: the path of the C{adb} executable or None and C{ViewClient} will try to find it
    @type autodump: boolean
    @param autodump: whether an automatic dump is performed at the end of this constructor
    @type localport: int
    @param localport: the local port used in the redirection
    @type remoteport: int
    @param remoteport: the remote port used to start the C{ViewServer} in the device or
                       emulator
    @type startviewserverparam: boolean
    @param startviewserverparam: Whether to start the B{global} ViewServer
    '''

如您所见,init至少需要 2 个参数:deviceserialno. 所有其他参数都是可选的。在大多数情况下,这些参数是从 ViewClient.connectToDevice() 获得的:

device, serialno = ViewClient.connectToDeviceOrExit()
device.startActivity(component=component)
time.sleep(3)
vc = ViewClient(device, serialno)

重要提示: 您应该只连接到您的设备一次。你只需要MonkeyRunner.waitForConnectionAndroidViewClient.connectToDeviceOrExit不需要两者

于 2012-12-16T09:52:41.923 回答