Python ViewClient.ConnectToDeviceOrxit()有问题
我最近开始在移动应用程序自动化中使用python,因为我决定使用python,我发现的主要工具是monkeyrunner和androidviewclient 但有一个问题我不知道该怎么办:Python ViewClient.ConnectToDeviceOrxit()有问题,python,monkeyrunner,androidviewclient,Python,Monkeyrunner,Androidviewclient,我最近开始在移动应用程序自动化中使用python,因为我决定使用python,我发现的主要工具是monkeyrunner和androidviewclient 但有一个问题我不知道该怎么办: package = 'com.mypackage.android' activity = '.launchActivity' component = package + "/" + activity device, serialno = ViewClient.connectToDeviceOrExit()
package = 'com.mypackage.android'
activity = '.launchActivity'
component = package + "/" + activity
device, serialno = ViewClient.connectToDeviceOrExit()
device.startActivity(component=component)
time.sleep(3)
vc = ViewClient(device, serialno)
vc.dump()
showMenu = vc.findViewById("id/no_id/8")
showMenu.touch()
当我在windows cmd-monkeyrunner mypath\test-case1.py中运行它时
我收到一个例外:
131213 18:42:32.555:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions] Script terminated due to an exception
131213 18:42:32.555:S [MainThread] [com.android.monkeyrunner.MonkeyRunnerOptions]Traceback (most recent call last):
File "C:\Python27\tests\1.py", line 26, in <module>
device, serialno = ViewClient.connectToDeviceOrExit()
File "C:\Program Files (x86)\Android\AndroidViewClient\AndroidViewClient-maste
r\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1381, in conne
ctToDeviceOrExit
ViewClient.setAlarm(timeout+5)
File "C:\Program Files (x86)\Android\AndroidViewClient\AndroidViewClient-maste
r\AndroidViewClient\src\com\dtmilano\android\viewclient.py", line 1341, in setAl
arm
signal.alarm(timeout)
File "C:\Program Files (x86)\Android\android-sdk\tools\lib\jython-standalone-2
.5.3.jar\Lib\signal.py", line 222, in alarm
NotImplementedError: alarm not implemented on this platform
131213 18:42:32.555:S[MainThread][com.android.monkeyrunner.MonkeyRunnerOptions]脚本因异常而终止
131213 18:42:32.555:S[main-thread][com.android.monkeyrunner.monkeyrunner-options]回溯(最近一次通话最后一次):
文件“C:\Python27\tests\1.py”,第26行,在
设备,serialno=ViewClient.connectToDeviceOrExit()
文件“C:\ProgramFiles(x86)\Android\AndroidViewClient\AndroidViewClient maste
r\AndroidViewClient\src\com\dtmilano\android\viewclient.py”,第1381行,康涅狄格州
ctToDeviceOrExit
ViewClient.setAlarm(超时+5)
文件“C:\ProgramFiles(x86)\Android\AndroidViewClient\AndroidViewClient maste
r\AndroidViewClient\src\com\dtmilano\android\viewclient.py”,setAl中的第1341行
臂
信号报警(超时)
文件“C:\ProgramFiles(x86)\Android\Android sdk\tools\lib\jython-standalone-2
.5.3.jar\Lib\signal.py”,第222行,报警
NotImplementedError:此平台上未实现报警
我做错什么了吗?请帮忙
多谢各位 这就是
setAlarm
的样子
@staticmethod
def setAlarm(timeout):
osName = platform.system()
if osName.startswith('Windows'): # alarm is not implemented in Windows
return
signal.alarm(timeout)
因此,它尝试识别这是Windows,然后不调用未实现的signal.alarm()
,但由于某种原因,它在您的情况下失败。
尝试打印osName
的结果以查看出现了什么问题
更新
现在我明白了,您正在使用
monkeyrunner
作为解释器,但是AndroidViewClient>=4.0.0是100%纯python,因此您应该使用python
2.x解释器运行脚本。您使用的是哪种AndroidViewClient版本?Windows中没有报警,这可能是问题之一。我正在使用最新的报警,我昨天从github下载了它。>>导入平台>>>osName=platform.system()>>打印osName
输出:Windows就是Windows是的,它似乎可以工作,使用python 2.7解释器是正确的解决方案。它是否适用于python 3.x版本?