Нажмите на кнопку поиска Android с Calabash
У меня такая проблема: я тестирую приложение для Android, которое использует поле поиска, встроенное в текст редактирования, поэтому это не обычный контроллер поиска, но на клавиатуре появляется кнопка поиска. Я использую Calabash для написания тестов.
Это тест:
Scenario: Iniciar la aplicación y realizar búsquedas
And I wait for "Música" to appear
Then I press view with id "menu_search"
Then I enter text "Judas Priest" into field with id "collapsibleEditText"
Then I press "search"
Выполнение возвращает эту ошибку:
And I wait for "Música" to appear
Then I press view with id "menu_search"
Then I enter text "Judas Priest" into field with id "collapsibleEditText"
Then I press "search"
Timeout waiting for elements: * marked:'search' (Calabash::Android::WaitHelpers::WaitError)
features/test.feature:11:in `Then I press "search"'
3 ответа
Вы должны использовать метод press_user_action_button
нажать кнопку "Поиск", появляющуюся на клавиатуре. Нажав клавишу ввода (press_enter_key
) - это не то, что должен делать пользователь, если на устройстве нет физической клавиатуры. Вы можете узнать больше о том, как Android обрабатывает специальную клавиатуру "клавиши ввода" (кнопки действий пользователя) здесь.
С шагом "Затем я нажимаю" поиск "" он будет искать элементы пользовательского интерфейса с этой меткой. Но это не включает в себя клавиатуру.
Есть 2 варианта
Что-то вроде
Затем /^ Я нажимаю кнопку ввода $/
Или как то так
keyboard_enter_keyevent ('KEYCODE_ENTER')
(Это скопировано с Крейзи Робот)
Я копирую исправление к проблеме.
Я создал новое определение шага в моем сценарии
Scenario
.... nothing changed from the question above
Then I press search button
И в функциях /step_definitions/calabash_steps.rb
Then /^I press search button$/ do
press_enter_button
end
И это работает