Monkeyrunner 不时挂起。
我正在使用来自网络的以下代码。(对不起,我忘记了来源。
此代码用于检测"猴子挂起问题"并重新连接。
class Timeout():
"""Timeout class using ALARM signal."""
class Timeout(Exception):
pass
def __init__(self, sec):
self.sec = sec
def __enter__(self):
signal.signal(signal.SIGALRM, self.raise_timeout)
signal.alarm(self.sec)
def __exit__(self, *args):
signal.alarm(0) # disable alarm
def raise_timeout(self, *args):
raise Timeout.Timeout()
def snapshot():
while (True):
try:
with Timeout(2):
return(mdevice().takeSnapshot())
except Timeout.Timeout:
print "========================= snapshot timeout ==============="
mdevice(1)
但是,报告以下错误:
File ".libmonkeySetting.py", line 30, in __enter__
signal.signal(signal.SIGALRM, self.raise_timeout)
AttributeError: 'module' object has no attribute 'SIGALRM'
如何解决这个问题?
还是有没有其他方法可以解决"猴子挂问题"?
首先,SIGALRM
不是在 Windows 上实现的:
在 Windows 上,signal() 只能使用 SIGABRT、SIGFPE、SIGILL、 SIGINT,SIGSEGV或SIGTERM。在任何其他情况下都会引发值错误 箱。
另一方面,你应该尝试AndroidViewClient/culebra,我希望你能解决挂起问题,根本不需要SIGALRM。