将monkeyrunner导入python ViewClien

2024-09-29 02:23:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我对使用ViewClient扩展MonkeyRunner很感兴趣,因为纯MonkeyRunner遇到了管道破裂的问题。在

我还需要在设备.压力(...), 设备.触摸(...), 设备.拖动不过,为了测试安卓系统的一部分,我不需要在客户端中使用该程序的viewID。除非有人知道如何在调用前在ViewClient中设置硬编码的X/Yvc触摸()/风阻()等等?在

因此,我有以下Python脚本的头,该脚本试图将ViewClient环境和MonkeyRunner路径拉入。但是,运行脚本总是会导致相同的错误:

ImportError: No module named android.monkeyrunner

脚本中设置环境的部分是这样构造的(environment-ubuntu12.04lts)

#! /usr/bin/env python

# Import Class Files

import sys
import os

# This must be imported before MonkeyRunner and MonkeyDevice,
# otherwise the import fails.
# PyDev sets PYTHONPATH, use it
try:
    for p in os.environ['PYTHONPATH'].split(':'):
       if not p in sys.path:
          sys.path.append(p)
except:
    pass

try:
    sys.path.append(os.environ['ANDROID_VIEW_CLIENT_HOME'])
    sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
    sys.path.append(os.path.join(os.environ['ANDROID_SDK_ROOT'], 'tools/lib/monkeyrunner.jar'))
    sys.path.append(os.path.join(os.environ['ANDROID_SDK_ROOT'], 'tools/lib'))
except:
    pass

print sys.path

from com.dtmilano.android.viewclient import ViewClient, View
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice

所以上面的输出是这样的:

^{pr2}$

谢谢!在

更新:

有趣的是:

mactwixs:~/AndroidViewClient/examples$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path_hooks
[<type 'zipimport.zipimporter'>]
>>>

不应该也有<type 'org.python.core.JavaImporter'>?在

更新2:

所以区别在于:

mactwixs:~/AndroidViewClient/examples$ python
**Python** 2.7.3 (default, Sep 26 2013, 20:03:06) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>

mactwixs:~/AndroidViewClient/examples$ monkeyrunner
**Jython** 2.5.3 (2.5:c56500f08d34+, Aug 13 2012, 14:54:35) 
[Java HotSpot(TM) 64-Bit Server VM (Sun Microsystems Inc.)] on java1.6.0_24
>>>

……让我试试Jython!在

更新3:

没有。现在它和ViewClient打架了,所以我回到原点。。。我找到支票了-导入.py随ViewClient提供的。这让我觉得在调用monkeyrunner而不是python时,有些东西设置得不太正确视图客户端.py&安培;adbclient.py... 在

mactwixs:~/AndroidViewClient/examples$ monkeyrunner check-import.py --debug
sys.path= ['/home/mactwixs/dev_env/ADT/sdk/tools/lib/monkeyrunner.jar', '/home/mactwixs/AndroidViewClient/examples', '/home/mactwixs/dev_env/ADT/sdk/tools/lib/Lib', '/home/mactwixs/dev_env/ADT/sdk/tools/lib/jython-standalone-2.5.3.jar/Lib', '__classpath__', '__pyclasspath__/', '/home/mactwixs/AndroidViewClient/src']
/home/mactwixs/AndroidViewClient/src/com/dtmilano/android/viewclient.py:27: RuntimeWarning: 

    You should use a 'python' interpreter, not 'monkeyrunner' for this module


  warnings.warn(
/home/mactwixs/AndroidViewClient/src/com/dtmilano/android/adb/adbclient.py:26: RuntimeWarning: 

    You should use a 'python' interpreter, not 'monkeyrunner' for this module


  warnings.warn(
OK

Tags: pathpyimporthomeforossysenviron
1条回答
网友
1楼 · 发布于 2024-09-29 02:23:59

我做了一些实验,还查看了GIT存储库,结果发现我确实可以根据需要进行拖放操作,但没有MonkeyRunner,而且完全是用Python编写的,所以我的问题已经解决了,因为我不必导入Monkey库。在

import sys
import os
import time

try:
    sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
    pass

from com.dtmilano.android.adb import adbclient
import com.dtmilano.android.viewclient as viewclient

device, serialno = viewclient.ViewClient.connectToDeviceOrExit(verbose=True)
device.drag((960,1497),(214,1496),0.15,10)

time.sleep(2)

device.touch(610, 1734, adbclient.DOWN_AND_UP)

time.sleep(2)

相关问题 更多 >