如何使用monkeyrunner和Androidviewclient单击包含特定文本的视图?

时间:2012-08-14 13:59:30

标签: android monkeyrunner android-monkey

我正在尝试使用Monkey runner和Android ViewClient模拟Android平板电脑上的点击。我想点击具有特定文本的区域/视图。以下是我正在尝试做的一个例子:

  • 我有一个脚本,我导入MonkeyRunner,MonkeyDevice,ViewClient
    from com.dtmilano.android.viewclient import ViewClient
    from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

  • 连接平板电脑并创建MonkeyDevice对象
    device = MonkeyDevice.waitForConnection()

  • 使用设备我然后创建一个Android ViewClient对象
    vc = ViewClient(device)

  • 我在平板电脑上打开“设置”应用 device.startActivity('com.android.settings/.Settings')

  • 然后我使用以下方法找到所需的视图:
    displayView = findViewWithAttribute('text:mText', 'Display')

  • 然后我尝试点击该视图(通过模拟触摸事件):
    displayView.touch()

问题是此脚本触及屏幕的另一部分,位于“设置”应用中WiFi线左侧的某个位置。

我查看了ViewClient的源代码,发现touch()方法返回视图的(x,y)坐标,然后使用MonkeyDevice.touch()方法。但返回的(x,y)坐标是相对于视图的父级。

有人知道如何获得视图对象的正确(x,y)坐标吗? 或者至少是一种获取观点的父母的方法。

1 个答案:

答案 0 :(得分:0)

问题解决了。最新版本的AndroidViewClient解决了我的问题。

我可以使用:

view = vc.findViewWithText('Dsiplay')
view.touch()