Базовый скрипт MonkeyRunner/AndroidViewClient не работает

У меня есть довольно простой сценарий, в котором я намереваюсь, чтобы приложение перетаскивало 3 раза, а затем нажимало кнопку. Приложение три раза отлично тащит, но потом выдает ошибку, когда я добавляю сенсорный код.

Код:

device, serialno = ViewClient.connectToDeviceOrExit())
device.drag((120, 220), (300, 220), 1, 20)
MonkeyRunner.sleep(5)
device.drag((120, 220), (300, 220), 1, 20)
MonkeyRunner.sleep(3)
device.drag((120, 220), (300, 220), 1, 20)
temp = device.findViewWithText('Lesson 1')
temp.touch()

Ошибка:

line 34, in <module>
    device, serialno = ViewClient(*ViewClient.connectToDeviceOrExit())
TypeError: 'instance' object is not iterable

Новый код:

device, serialno = ViewClient.connectToDeviceOrExit()
temp = device.findViewWithText('Lesson')

Новая ошибка:

    temp = device.findViewWithText('Audiobooks')
AttributeError: 'com.android.monkeyrunner.MonkeyDevice' object has no attribute 'findViewWithText'

person EGHDK    schedule 30.04.2013    source источник


Ответы (1)


В конце есть лишний ')':

device, serialno = ViewClient.connectToDeviceOrExit()) 

Я думаю, ты имеешь в виду

device, serialno = ViewClient.connectToDeviceOrExit()

Новый код

Проблема с вашим новым кодом

temp = device.findViewWithText('Lesson')

заключается в том, что findViewWithText() - это метод в классе ViewClient, а не в MokeyDevice, как говорит вам ошибка:

AttributeError: 'com.android.monkeyrunner.MonkeyDevice' object has no attribute 'findViewWithText'

Итак, правильный код:

vc = ViewClient(device, serialno)
temp = vc.findViewWithText('Lesson')

Взгляните на примеры, и вы получите ответы на все свои вопросы. .

person Diego Torres Milano    schedule 01.05.2013