Хотите запустить Monkeyrunner, чтобы загрузить изображение для сравнения на платформе Windows

#android #monkeyrunner

#Android #monkeyrunner

Вопрос:

  1. проверка=MonkeyRunner.loadImageFromFile(chk)
  2. проверка=MonkeyRunner.LoadFromFile(chk)
  3. проверка=Изображение обезьяны.Загрузка из файла(chk)

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

Обратная трассировка (последний вызов last): файл «stdin», строка 1, в AttributeError: введите объект ‘com.android.monkeyrunner.У MonkeyRunner’нет атрибута ‘LoadFromFile’

Ответ №1:

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

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

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

for m in [MonkeyRunner, MonkeyDevice, MonkeyImage]:
    print "%s:n   %sn" % (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']
  

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

Комментарии:

1. dtmilano . Я получаю то же самое, что и ожидалось. Но моя проблема заключается в обновлении monkeyrunner. Пожалуйста, дайте мне подробную информацию, чтобы найти последнюю версию monkeyrunner.

Ответ №2:

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

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

 MonkeyRunner.loadImageFromFile(imgFullPath)
  

Ответ №3:

Я бы предпочел использовать библиотеку 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.

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

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

Комментарии:

1. Как вы получили PIL в MonkeyRunner?