2011-05-04 68 views
1
  1. 檢查= MonkeyRunner.loadImageFromFile(CHK)
  2. 檢查= MonkeyRunner.loadFromFile(CHK)
  3. 檢查= MonkeyImage.loadFromFile(CHK)

上述所有給予錯誤要運行Monkeyrunner在Windows平臺加載圖像進行比較

Traceback (most recent call last): File "stdin", line 1, in AttributeError: type object 'com.android.monkeyrunner.MonkeyRunner' has no attri bute 'loadFromFile'

回答

4

,看看有什麼在你的monkeyrunner,運行此腳本:

#! /opt/android-sdk/tools/monkeyrunner 

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage 

for m in [MonkeyRunner, MonkeyDevice, MonkeyImage]: 
    print "%s:\n %s\n" % (m.__name__, dir(m)) 

你會看到什麼是定義和在哪裏。例如,SDK中的monkeyrunner返回

MonkeyRunner: 
    ['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'alert', 'choice', 'help', 'input', 'sleep', 'waitForConnection'] 

MonkeyDevice: 
    ['DOWN', 'DOWN_AND_UP', 'UP', '__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'broadcastIntent', 'drag', 'getProperty', 'getSystemProperty', 'installPackage', 'instrument', 'press', 'reboot', 'removePackage', 'shell', 'startActivity', 'takeSnapshot', 'touch', 'type', 'wake'] 

MonkeyImage: 
    ['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'convertToBytes', 'getRawPixel', 'getRawPixelInt', 'getSubImage', 'sameAs', 'writeToFile'] 

如果不符合您的預期,則從源代碼構建。

+0

dtmilano。我得到了與預期相同的結果。但我的問題是升級monkeyrunner。請給我詳細資料,以找到最新的monkeyrunner。 – Ravi 2011-06-16 12:42:42

0

我寧願使用python的PIL庫來完成這項工作。
你必須單獨安裝PIL。

將此操作分爲兩部分。 首先獲取當前圖像

使用PIL庫編寫一個python腳本,如下所示。

from PIL import Image 
from PIL import ImageChops 

def equal(im1, im2): 
    return ImageChops.difference(im1, im2).getbbox() is None 

im1 = Image.open("current.png") 
im2 = Image.open("reference.jpg") 
equal(im1, im2) 

注:蟒蛇和PIL庫必須安裝這個工作。

該功能檢查兩幅圖像之間的差異。
current.png從設備捕獲,reference.png是參考圖像。
將此代碼寫入單獨的文件並從monkeyrunner腳本調用。

P.S.如果您無法破解monkeyrunner代碼或在以後的版本中monkeyrunner不提供此功能,請使用它。

+1

你是如何在MonkeyRunner中獲得PIL的? – 2016-08-31 03:12:58

2

使用Android SDK中的最新Monkeyrunner(目前是r13

使用方法在MonkeyRunner模塊:

MonkeyRunner.loadImageFromFile(imgFullPath)