Хотите запустить Monkeyrunner для загрузки изображения для сравнения в платформе Windows - PullRequest
1 голос
/ 04 мая 2011
  1. проверяя = MonkeyRunner.loadImageFromFile (чк)
  2. проверяя = MonkeyRunner.loadFromFile (чк)
  3. проверяя = MonkeyImage.loadFromFile (чк)

все вышеперечисленное выдает ошибку

Traceback (последний вызов был последним): файл "stdin", строка 1, в AttributeError: тип объекта 'com.android.monkeyrunner.MonkeyRunner' не имеет attri bute 'loadFromFile '

Ответы [ 3 ]

4 голосов
/ 07 мая 2011

Чтобы увидеть, что у вас в обезьяне, запустите этот скрипт:

#! /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))

Вы увидите, что определено и где.Например, monkeyrunner в SDK возвращает

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']

Если это не так, как вы ожидали, выполните сборку из исходного кода.

2 голосов
/ 09 октября 2011

используйте последнюю версию Monkeyrunner в Android SDK (в настоящее время r13 )

используйте метод в модуле MonkeyRunner:

MonkeyRunner.loadImageFromFile(imgFullPath)
0 голосов
/ 02 августа 2011

Я бы предпочел использовать PIL-библиотеку python для этой работы.
Вы должны установить PIL отдельно.

Разделите эту операцию на две части.Сначала возьмите текущее изображение

. Напишите скрипт Python, используя библиотеку PIL, как показано ниже.

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)

Примечание: Библиотека Python и PIL должны быть установлены, чтобы это работало.

Эта функция проверяет разницу между двумя изображениями.
current.png записывается с устройства, а reference.png является опорным изображением.
Запишите этот код в отдельный файл и вызовите из скрипта monkeyrunner.

PS Используйте его, если вы не можете взломать код monkeyrunner или monkeyrunner не предоставляет эту функцию в более поздних выпусках.

...