Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用monkeyrunner和Android ViewClient单击包含指定文本的视图?_Android_Monkeyrunner_Android Monkey - Fatal编程技术网

如何使用monkeyrunner和Android ViewClient单击包含指定文本的视图?

如何使用monkeyrunner和Android ViewClient单击包含指定文本的视图?,android,monkeyrunner,android-monkey,Android,Monkeyrunner,Android Monkey,我正在尝试使用monkey runner和Android ViewClient模拟点击Android平板电脑。我想单击具有特定文本的区域/视图。下面是我尝试做的一个例子: 我有一个脚本,可以在其中导入MonkeyRunner、MonkeyDevice和ViewClient 从com.dtmilano.android.viewclient导入viewclient 来自com.android.monkeyrunner导入monkeyrunner,MonkeyDevice 连接平板电脑并创建Monk

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

  • 我有一个脚本,可以在其中导入MonkeyRunner、MonkeyDevice和ViewClient
    从com.dtmilano.android.viewclient导入viewclient

    来自com.android.monkeyrunner导入monkeyrunner,MonkeyDevice

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

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

  • 我打开平板电脑上的设置应用程序
    device.startActivity('com.android.settings/.settings')

  • 然后,我使用:
    displayView=findViewWithAttribute('text:mText','Display')

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

问题在于,该脚本触及屏幕的另一部分,即设置应用程序中WiFi线路左侧的某个位置

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

有人知道如何获得视图对象的正确(x,y)坐标吗?

或者至少是一种获得视图父视图的方法。

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

我可以使用:

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