MonkeyImage.sameAs () просто сломан - не важно, что вы передадите ему, вы получите эту ошибку.
Обходной путь: используйте convertToBytes ():
new_snap = device.takeSnapshot()
old_snap = MonkeyRunner.loadImageFromFile(control_dir + '/' + test_name + '.png')
#if new_snap.sameAs(old_snap) == True:
new_bytes = new_snap.convertToBytes('png')
old_bytes = old_snap.convertToBytes('png')
if new_bytes == old_bytes:
print 'Test ' + test_name + ' PASSED'
else:
print 'Test ' + test_name + ' FAILED'
Обновление: 27 октября 2011 г .: сравнение части снимка
Согласно комментарию Кациулы, это код для удаления строки состояния из снимка:
device = MonkeyRunner.waitForConnection(emulator)
width = int(device.getProperty('display.width'))
height = int(device.getProperty('display.height'))
density = device.getProperty('display.density')
if density == .75:
density_dir = 'ldpi'
snap_rect = 0, 19, width, height - 19
elif density == 1.5:
density_dir = 'hdpi'
snap_rect = 0, 38, width, height - 38
elif density == 2.0:
density_dir = 'xhdpi'
snap_rect = 0, 50, width, height - 50
else:
density_dir = 'mdpi'
snap_rect = 0, 25, width, height - 25
new_snap = device.takeSnapshot()
new_snap = new_snap.getSubImage(snap_rect)