MonkeyRunner_monkey runner下图片比对

  
  
  
  
from com.android.monkeyrunner import MonkeyRunner , MonkeyDevice
  
  
  
  
import os
  
  
  
  
import time
  
  
  
  
import math
  
  
  
  
import re
  
  
  
  
 
  
  
  
  
def getx ( n ):
  
  
  
  
if n in ( '1' , '4' , '7' ):
  
  
  
  
return 50
  
  
  
  
elif n in ( '2' , '5' , '8' , '0' ):
  
  
  
  
return 100
  
  
  
  
else :
  
  
  
  
return 200
  
  
  
  
def gety ( n ):
  
  
  
  
if n in ( '1' , '2' , '3' ):
  
  
  
  
return 150
  
  
  
  
elif n in ( '4' , '5' , '6' ):
  
  
  
  
return 200
  
  
  
  
elif n in ( '7' , '8' , '9' ):
  
  
  
  
return 250
  
  
  
  
else :
  
  
  
  
return 300
  
  
  
  
 
  
  
  
  
sqrt = re . compile ( r'([0-9]+)' )
  
  
  
  
percent = re . compile ( r'([0-9]+)\ %0f ([0-9]+)' )
  
  
  
  
  
  
  
  
print "Waiting for device!"
  
  
  
  
 
  
  
  
  
device = MonkeyRunner . waitForConnection ()
  
  
  
  
 
  
  
  
  
print "Connected to device!"
  
  
  
  
 
  
  
  
  
dummy = raw_input ( 'press enter to start' )
  
  
  
  
prev_question = ''
  
  
  
  
 
  
  
  
  
for i in range ( 300 ):
  
  
  
  
filename = " %d .png" % i
  
  
  
  
device . takeSnapshot () . getSubImage (( 10 , 10 , 220 , 40 )) . writeToFile ( filename , 'png' )
  
  
  
  
question = os . popen ( "./ocr.sh %s " % filename ) . read ()
  
  
  
  
try :
  
  
  
  
if '+' not in question and '-' not in question and '/' not in question and '*' not in question and '%' not in question and 'i' not in question :
  
  
  
  
result = int ( question [ 0 : - 1 ]) * int ( question [ 0 : - 1 ])
  
  
  
  
elif '%' in question :
  
  
  
  
result = int ( percent . search ( question ) . group ( 1 )) * int ( percent . search ( question ) . group ( 2 )) / 100 ;
  
  
  
  
else :
  
  
  
  
result = eval ( question )
  
  
  
  
except :
  
  
  
  
continue
  
  
  
  
if i > 0 and prev_question == question :
  
  
  
  
continue
  
  
  
  
print " %s = %d " % ( question , result )
  
  
  
  
result_str = str ( result )
  
  
  
  
if '.' in question and '.' not in result_str :
  
  
  
  
result_str += '.0'
  
  
  
  
if 'm' in question :
  
  
  
  
result_str = sqrt . search ( result_str ) . group ( 1 )
  
  
  
  
time . sleep ( 0.1 )
  
  
  
  
for ch in result_str :
  
  
  
  
device . touch ( getx ( ch ), gety ( ch ), 'DOWN_AND_UP' )
  
  
  
  
time . sleep ( 0.1 )
  
  
  
  
prev_question = question

在python下对比两张图片是一件很容易的事情,在monkey runner下进行图片比对我还没有找到好的方法,python 中的PIL调用的是C模块,而monkey runner是java,所以不能在monkey runner中直接使用PIL库,还好上面的代码给了我解决问题的思路,在monkey runner中建立compareImage.sh,然后执行python脚本比对不就OK了吗

你可能感兴趣的:(MonkeyRunner_monkey runner下图片比对)