我最近开始使用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
我做错了什么?请帮忙。
非常感谢你!
答案 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解释器。