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