0

我正在尝试使用 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) 坐标吗?
或者至少是一种获得视图父母的方法。

4

1 回答 1

0

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

我可以用:

view = vc.findViewWithText('Dsiplay')
view.touch()
于 2012-09-21T12:35:20.687 回答