使用 Calabash 按下 Android 搜索按钮
Push on Android search button with Calabash
我遇到了这个问题:我正在测试一个 Android 应用程序,该应用程序使用嵌入在编辑文本中的搜索框,因此它不是典型的 "search" 控制器,而是键盘中的搜索按钮出现。我正在使用 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"
执行return这个错误:
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"'
通过步骤 "Then I press "search"" 它将搜索具有该标签的 UI 元素。但这不包括键盘。
有2个选项
类似
然后/^我按下回车键$/
或者类似这样的东西
keyboard_enter_keyevent('KEYCODE_ENTER')
(这是从Krazy Robot复制的)
您应该使用方法press_user_action_button
来按下出现在键盘上的'search'按钮。按回车键 (press_enter_key
) 不是用户会做的,除非设备有 物理 键盘。您可以详细了解 Android 如何处理特殊键盘 'enter keys'(用户操作按钮)here。
我复制问题的修复。
我在我的场景中创建了一个新的步骤定义
Scenario
.... nothing changed from the question above
Then I press search button
并且在 features/step_definitions/calabash_steps.rb
Then /^I press search button$/ do
press_enter_button
end
而且有效
我遇到了这个问题:我正在测试一个 Android 应用程序,该应用程序使用嵌入在编辑文本中的搜索框,因此它不是典型的 "search" 控制器,而是键盘中的搜索按钮出现。我正在使用 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"
执行return这个错误:
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"'
通过步骤 "Then I press "search"" 它将搜索具有该标签的 UI 元素。但这不包括键盘。
有2个选项
类似
然后/^我按下回车键$/
或者类似这样的东西
keyboard_enter_keyevent('KEYCODE_ENTER')
(这是从Krazy Robot复制的)
您应该使用方法press_user_action_button
来按下出现在键盘上的'search'按钮。按回车键 (press_enter_key
) 不是用户会做的,除非设备有 物理 键盘。您可以详细了解 Android 如何处理特殊键盘 'enter keys'(用户操作按钮)here。
我复制问题的修复。
我在我的场景中创建了一个新的步骤定义
Scenario
.... nothing changed from the question above
Then I press search button
并且在 features/step_definitions/calabash_steps.rb
Then /^I press search button$/ do
press_enter_button
end
而且有效