ViewClient.connectToDeviceOrExit()出了什么问题

时间:2013-12-13 15:56:45

标签: python monkeyrunner androidviewclient

我最近开始使用python和移动应用程序自动化,因为我决定使用python,我发现的主要工具是monkeyrunner和androidviewclient。

但是第一个问题我不知道该怎么做:

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
我做错了什么?请帮忙。

非常感谢你!

1 个答案:

答案 0 :(得分:0)

这就是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&gt; = 4.0.0 是100%纯python,因此您应该使用{{1}运行脚本2.x解释器。