Calabash-Android кнопка новой почты

Вот случай: я новичок в Android, и я запускаю автоматический тест для отправки электронной почты с помощью calabash-android каждые 5 минут из приложения, установленного на Android, и в сценарии я могу успешно открыть приложение электронной почты, но новая кнопка электронной почты помечена изображением конверта.

Теперь, как я могу узнать идентификатор этой кнопки, чтобы указать Calabash-Android нажать эту кнопку?

Я попытался запустить отладку для эмулятора, и каждый раз, когда я нажимаю новую кнопку электронной почты, я получаю это в отладке:

11-27 18:36:59.092: I/ActivityManager(1177): START u0 {cmp=com.android.email/com.android.mail.compose.ComposeActivity (имеет дополнительные функции)} от pid 5668

Кто-нибудь знает, как получить идентификатор этой кнопки??


person user3042699    schedule 27.11.2013    source источник


Ответы (1)


У каждого элемента пользовательского интерфейса есть способ запроса. Вам может не понадобиться идентификатор, так как иногда для запроса могут использоваться другие характеристики указанного элемента.

Обычно вот как я решаю эти проблемы. Скажем, например, что я хочу запросить элемент, который отображается в меню:

1- Запустите консоль калебаса. Вы можете сделать это, следуя этим инструкциям (из wiki от calabash).

krukow:~/tmp/android$ calabash-android console login.apk 
irb(main):001:0> start_test_server_in_background
=> nil
#You can now query the UI and see the description

2- Отобразите пользовательский интерфейс, который я хочу запросить (в этом случае я нажимаю кнопку меню). Затем я набираю в консоли:

 query("*")

Это в конечном итоге покажет все представления на экране, включая некоторые вещи, которые даже не видны. Вы просто ищете некоторые характеристики представлений, которые хотите запросить. В моем случае я замечу, что нужные мне представления помечены определенным текстом.

 query(" * marked:'More'")

В конце концов, вы можете использовать что угодно: от текста внутри представления до его идентификатора и позиции. Поскольку query возвращает массив, в худшем случае вы можете получить элемент, используя его индекс в массиве.

Если вам нужна помощь в написании запроса, попробуйте команду query("*") и опубликуйте результат.

person verybadalloc    schedule 20.12.2013
comment
Большое спасибо за ваш ответ, у меня была работа, чтобы использовать размер для кнопки. Но попробую и ваше решение. - person user3042699; 27.04.2014