Monkeyrunner图片对比

来源:互联网 发布:免费下载管车宝软件 编辑:程序博客网 时间:2024/04/28 02:37
#转自:jiguanghoverli
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了吗