1

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


На странице входа, я успешно смог проверить для ...

  • Адрес электронной почты поле
  • Пароль поле

, но я могу Кажется, что тест на наличие и состояние включен ...

  • Вход кнопку
  • Скрыть кнопку (чтобы скрыть или показать пароль напечатанный)
  • Пароль Справка и восстановление кнопка

Используя query("*"), я могу получить все ID, но я в тупике о действительных командах запроса, с которыми нужно протестировать.

Это мой тест до сих пор:

Feature: Sign In appearance 
Scenario: Upon launch, all elements of the login page should appear correctly 
    Then I see "Email Address" 
    Then I see "Password" 
    Then I see "button marked:'Sign In'" 

Который дает следующие результаты:

Then I see "button marked:'Sign In'"        # calabash-android-0.4.20/lib/calabash-android/steps/assert_steps.rb:5 
    Action 'assert_text' unsuccessful: Text'button marked:'Sign In'' was not found (RuntimeError) 
    features/Login_appearance.feature:6:in `Then I see "button marked:'Sign In'"' 
Failing Scenarios: 
cucumber features/Login_appearance.feature:3 

Как поступим?

ответ

1

Вы пробовали заменить

Then I see "button marked:'Sign In'" 

с

Then I see "Sign In" 

?

+0

Calabash не видит текстовые метки кнопок в нашем приложении. Итак, в конце концов, когда мои знания о Calabash достаточно продвинулись, я использовал view_id кнопки, которая работала. – Noffica

2

Вместо того, чтобы использовать предопределенные шаги, создайте настраиваемый шаг и используйте методы query и Ruby api.

Посмотрите на этот пост первым, чтобы узнать больше о языке запросов: http://krazyrobot.com/2014/04/calabash-using-query/

Затем найти элементы с query возможно по идентификатору, например.:

  • запрос ("* Идентификатор: 'email_field'")
  • запрос ("* Идентификатор:" pwd_field")

Создайте пользовательский шаг в вашем шаге определения и использовать wait_for_elements_exist метод проверки элементов:

Then /^all the elements are present on the login screen$/ do 
    wait_for_elements_exist(["* id:'email_field'", "* id:'pwd_field'"]) 
end 
+0

Да, я могу дождаться этих элементов. Calabash также подтверждает, что кнопка существует, но как проверить, что кнопка включена? – Noffica

+2

Под этим я имею в виду, как проверить, является ли кнопка недоступной, что она прослушивает ввод? – Noffica