Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.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
如何使用AndroidViewClient触摸/按下按钮/查看?_Android_View_Androidviewclient - Fatal编程技术网

如何使用AndroidViewClient触摸/按下按钮/查看?

如何使用AndroidViewClient触摸/按下按钮/查看?,android,view,androidviewclient,Android,View,Androidviewclient,我有一个应用程序,我想用Android ViewClient运行Monkeyrunner 我试图将我的观点定义为 Vc = ViewClient(device, serialno) vc.dump touchProject = vc.findViewByIdorRaise('id/projectNewGallery') touchProject.touch() 但我得到了错误:->com.dtmilano.android.viewclient.ViewNotFoundException:在ro

我有一个应用程序,我想用Android ViewClient运行Monkeyrunner

我试图将我的观点定义为

Vc = ViewClient(device, serialno)
vc.dump
touchProject = vc.findViewByIdorRaise('id/projectNewGallery')
touchProject.touch()
但我得到了错误:->com.dtmilano.android.viewclient.ViewNotFoundException:在root=root的树中找不到ID='ID/projectNewGallery'的视图

我怎样才能扎根?像这样

  touchProject = vc.findViewByIdorRaise('id/projectNewGallery','id/projectMain')
?? ///////////////////////////////////////////////////////////////////////////////////

我试图使用库莱布拉工具,但我得到以下错误

$ java -jar androidviewclient-2.3.16.jar culebra
ERROR: monkeyrunner was not found and Windows 7 does not support shebang in scripts.    Aborting.
我也尝试过这种方式非Shebang OS->Windows7

$ /cygdrive/c/android-sdk/tools/monkeyrunner.bat -plugin /cygdrive/c/Android_Resources_Hassan/MonkeyRunner_KIneMaster/AndroidViewClient-master/AndroidViewClient/bin/androidviewclient-2.3.22.jar culebra myscript.py
Plugin file doesn't exist
Usage: monkeyrunner [options] SCRIPT_FILE

-s      MonkeyServer IP Address.
-p      MonkeyServer TCP Port.
-v      MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, OFF)
好的,我可以运行Windows CMD:

C:\android-sdk\tools>monkeyrunner -plugin C:\Android_Resources_Hassan\MonkeyRunner_KIneMaster\androidviewclient-2.3.24.jar test3_py.py
但我又犯了以下错误:

130619 14:41:15.725:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions]    Script terminated due to an exception
130619 14:41:15.725:S [MainThread]  [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last):
File "C:\android-sdk\tools\test3_py.py", line 71, in <module>
touchProject = vc.findViewByIdOrRaise('id/projectNewGallery')
File "C:\Android_Resources_Hassan\MonkeyRunner_KIneMaster\AndroidViewClient- master\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1919, in  findViewById
OrRaise raise ViewNotFoundException("ID", viewId, root)
com.dtmilano.android.viewclient.ViewNotFoundException: Couldn't find View with    ID='id/projectNewGallery' in tree with root=ROOT
ID是否与XML android中定义的ID相同:ID=+ID/newProjectGallery

//////////////////////在代码中添加vc.traverse之后///////////////////

我得到以下错误

130620 10:07:43.775:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions]    Script terminated due to an exception
130620 10:07:43.775:S [MainThread]   [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last):
 File "C:\android-sdk\tools\test.py", line 71, in <module>
    ViewClient(*ViewClient.connectToDeviceOrExit()).traverse(transform=ViewClient.TRAVERSE_CIT)
  File "C:\Android_Resources_Hassan\MonkeyRunner\AndroidViewClient-  master\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1687, in traverse
   print >>stream, "%s%s" % (indent, s)
 LookupError: unknown encoding 'ms949'
此外,我还运行了dump-simple.py代码。但我又犯了同样的错误:

130620 10:07:43.775:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions]   Script terminated due to an exception
130620 10:07:43.775:S [MainThread]   [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last): 
File "C:\android-sdk\tools\dump-simple.py", line 30, in <module>
  ViewClient(*ViewClient.connectToDeviceOrExit()).traverse(transform=ViewClient.TRAVERSE_CIT)
File "C:\Android_Resources_Hassan\MonkeyRunner\AndroidViewClient-  master\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1687, in traverse
print >>stream, "%s%s" % (indent, s)
LookupError: unknown encoding 'ms949'
是什么原因造成的? 请帮帮我~


谢谢

我看到您的代码片段中有几个错误,请检查此更正版本:

vc = ViewClient(device, serialno)
vc.dump()
touchProject = vc.findViewByIdOrRaise('id/projectNewGallery')
touchProject.touch()
为了简化此过程,您可以使用生成正确的脚本模板,以便以后根据需要进行调整: 当设备屏幕包含所需视图时:

$ culebra -VC -o myscript.py
编辑myscript.py以将调用添加到touch方法并运行

$ myscript.py
如果ID不可用,使用详细注释-C可以简化视图的标识

使现代化 在您的第一个示例中,您就快到了,我想这个问题应该通过我之前更正的代码片段来解决。在代码运行时,唯一的问题可能是您期望的ID不存在。 请记住,如果后端是UiAutomator,则没有ID,这是API>=16的默认后端

java运行程序希望monkeyrunner位于路径中

似乎/cygdrive/c/Android\u Resources\u Hassan/MonkeyRunner\u KIneMaster/AndroidViewClient master/AndroidViewClient/bin/AndroidViewClient-2.3.22.jar不存在。至少monkeyrunner是这么想的。也许您应该在Windows路径中使用\


如何使用库莱布拉工具?我收到了这个错误:/usr/bin/env:monkeyrunner:没有这样的文件或目录,我正在使用Windows系统,能够使用AndroidViewClient->启动应用程序/活动并运行settings.pyNo等示例来运行simple.py脚本。请向我解释如何运行Culebra工具?我想不出来。您在上面提到了myscript.py。这是我的python脚本文件还是一个随机名称?您应该阅读。myscript.py只是一个占位符名称。您也可以尝试中提供的最新版本2.3.24。谢谢您的帮助。我能够运行代码,但仍然出错代码中存在一些缩进问题,但我假设它们是由于复制/粘贴造成的。只需在vc.dump之后添加vc.transverse,整个树就会打印出来,您将看到视图的ID或唯一ID。我尝试在vc.dump之后使用vc.transverse。我得到的错误,我张贴在上面你可以解决它改变在脚本开始的编码。谷歌解决了这个问题。它在MAC OS X上运行良好,但windows仍然存在这个问题,无法在谷歌上找到编码解决方案。。。可能
$ myscript.py