40406_jun 发表于 2012-2-20 19:08:45

Monkeyrunner 图片对比

monkeyrunner 抓图时,会出现内存不足的异常终止,请高手指点???????

#Python.py 如下--------------------------------
#Function: test dictionary paocitiao
#Copyright: Yvan Wang
# 2012-02-08
#---------------------------------------------
#Imports the monkeyrunner modules used by this program
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

#Connects to the current device, returning a MonkeyDevice object
device = MonkeyRunner.waitForConnection()

#obtain device connection
if not device:
    print >> sys.stderr,"device connection is fail"
    sys.exit(1)

pause = 1.0
Num = 1000000

for i in range(1,Num):
    try:

      #get start screen
      result = device.takeSnapshot()   
      result.writeToFile('./result1.png','png');   
      device.press('KEYCODE_PAGE_DOWN')
      MonkeyRunner.sleep(pause)
      #get end screen
      result2 = device.takeSnapshot()
      result2.writeToFile('./result2.png','png');      
    except ValueError:
      print("Oops!That was no valid number.Try again...")
      continue
   
    #compare picture
    flag = result2.sameAs(result,1.0)
    #The bottom of list ' Msbox
    if (flag == True):
      MonkeyRunner.alert('The bottom of list!','result message','OK')

执行一段时间后,就会提示timeout exception 。

monkeytest15 发表于 2012-2-21 09:58:04

求lz qq~~~

sofall 发表于 2012-7-12 12:37:54

同求LZQQ ,肯定能帮我指点一二

daikang1988 发表于 2012-7-21 14:06:19

回复 1# 40406_jun


      看着好蛋疼啊,截图200w次,比较100w次,内存能不出问题么。。

孙小牛 发表于 2012-8-8 09:58:44

这个是个什么软件捏、?

chin1361 发表于 2012-8-20 16:59:45

我也遇到同样的问题。主要用截图对比的方式来判断当前页面已经达到我需求的页面,才能执行下一步操作。不过循环一般不超过5次就报cannot to takeSnapshot, 异常总结有3个timeout ,IO,ADB 同样的代码出现不同的异常。楼主一般循环几次出错?

zgc1031 发表于 2012-9-28 15:35:21

求楼主QQ

ii_hw 发表于 2012-9-29 16:01:56

不知道楼主的脚本是否是放在手机上执行的,如果是这样,手机那点硬件性能,显然不能满足你做那么多次截图操作。
我没研究过monkeyrunner,不知道它的takeSnapshot()是怎么实现的。我自己写的截图,都是去做读取/dev/graphics/fb0的操作,每次截图都有3到4秒的延时,不知道亦或是你pause的时间不够造成的内存泄露。
页: [1]
查看完整版本: Monkeyrunner 图片对比