0

我最近开始使用 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

难道我做错了什么?请帮忙。

十分感谢!

4

1 回答 1

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 >= 4.0.0是 100% 纯 python,因此您应该使用python2.x 解释器运行脚本。

于 2013-12-16T03:30:24.990 回答