Как нажать на представление, которое содержит указанный текст, используя monkeyrunner и Android ViewClient?
Я пытаюсь смоделировать щелчок на планшете Android, используя бегун обезьян и Android ViewClient. Я хочу нажать на регион / вид, который имеет конкретный текст. Вот пример того, что я пытаюсь сделать:
У меня есть скрипт, куда я импортирую MonkeyRunner, MonkeyDevice, ViewClient
from com.dtmilano.android.viewclient import ViewClient
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
Подключите планшет и создайте объект MonkeyDevice
device = MonkeyDevice.waitForConnection()
Используя устройство, я создаю объект Android ViewClient
vc = ViewClient(device)
Я открываю приложение Настройки на своем планшете
device.startActivity('com.android.settings/.Settings')
Затем я нахожу желаемый вид, используя:
displayView = findViewWithAttribute('text:mText', 'Display')
Затем я пытаюсь нажать на это представление (имитируя сенсорное событие):
displayView.touch()
Проблема в том, что этот скрипт касается другой части экрана, где-то в левой части строки WiFi в приложении "Настройки".
Я просмотрел исходный код ViewClient и обнаружил, что метод touch() возвращает координаты (x,y) представления, а затем использует метод MonkeyDevice.touch(). Но возвращаемые координаты (x,y) относятся к родителю представления.
Кто-нибудь знает, как получить правильные (x,y) координаты объекта просмотра?
Или, по крайней мере, способ получить мнение родителей.
1 ответ
Задача решена. Последняя версия AndroidViewClient решает мою проблему с представлениями.
Я могу использовать:
view = vc.findViewWithText('Dsiplay')
view.touch()