2015-04-27 2 views
1

Я пытаюсь перейти в contentDescription в определение пользовательского шага с небольшим успехом, и я не уверен, что могу это сделать, там очень мало помощи, поэтому я немного потерян.calabash-андроид, проходящий в контентеОписание в настраиваемом определении шага

, так что я начал кальян-андроида консоль затем start_test_server_in_background затем запрос («TextView»), который возвращает список элементов в TextView, в этом списке являются contentDescription, каждый из них имеет строковое значение, например, «thisIsValue»

теперь я написал шаг в моем художественном файле как:

Тогда я прикасаюсь contentDescription «thisIsValue» текст

синтаксис моего пользовательского метода шага является:

Затем/^ Я касаюсь содержимогоОписание текста (\ d +) $/do | text, contentDescription | tap_when_element_exists («contentDescription contentDescription: # {arg1}»)

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

спасибо всем.

Graeme

+0

извините, но это не работает :(Ive попробовал. Then/^ I touch content Текст описания: (. *?) $/Do | arg1 | tap_when_element_exists ("TextView contentDescription: # {arg1}") end Затем/^ Я касаюсь содержимогоОписание (. *?) $/Do | Текст | tap_when_element_exists ("TextView contentDescription: # {arg1}") end Затем/^ Я касаюсь содержимогоОписание (. *?) $/Do | arg1 | tap_when_element_exists («RadioButton contentDescription: # {arg1}») end Tried RadioButton как запрос («RadioButton») возвращает значения, которые я хочу утверждать. огурец BDD: Затем я касаюсь текста contentDescription «thisIsMyContentDesription» –

+0

Возможно, проблема связана с отсутствием апострофов вокруг значения 'contentDescription' в вашем запросе? Я уже отредактировал свой ответ. – kjuri

+0

шаг в функции является: Тогда я касаюсь contentDescription «капусту» текст шаг Защиту является: Тогда/^ Я прикасаюсь текст contentDescription: (. *) $/Делать | текст | tap_when_element_exists ("RadioButton contentDescription: '# text}'") конец все еще, похоже, не хочет работать ....... есть ли чип, который я могу разместить в моем мозгу, пожалуйста ..! вставить: Caffiene! –

ответ

3

Есть несколько возможно неправильные сведения о вашем шаге определения.

  1. Регулярное выражение (\d+) указывает, что вы ищете только элементы с цифрами в содержанииОписание.
  2. Вы переходите к одному значению блока (которое упоминается выше значения только для цифр), а затем ожидаете, что будут переданы два значения (text и contentDescription).
  3. Вы должны нажать элемент типа TextView, ImageView, * и т. Д., Но вы хотите нажать contentDescription.
  4. Вы хотите использовать элемент с contentDescription со значением arg1, но в вашем блоке нет arg1.
  5. Не забудьте про апострофы около contentDescription в вашем запросе.

Таким образом, ваше определение шаг, возможно, должно выглядеть примерно так:

Then /^I touch contentDescription text: (.*?)$/ do |arg1| 
    tap_when_element_exists("TextView contentDescription:'#{arg1}'") 
end 
+0

привет @kjuri, извините, что не работал. Мой запрос: query («RadioButton») это возвращает и массив с различными контентом. Описания, скажем, тот, который я ищу, это «капуста». Так что в моем огурце у меня есть: Затем я касаюсь текста описания содержания «капусты». Я попытался использовать различные значения в определении шага, ни одна из которых не работает ... это то, что я пробовал: Затем/^ Я касаюсь содержимогоОписание (. *?) $/Do | text | tap_when_element_exists ("Radiobutton contentDescription: # {arg1}") end –

+0

Но вы по-прежнему присваиваете значение contentDescription переменной 'text', а затем пытаетесь использовать' arg1'? Я имею в виду, если вы выполняете '| text |', тогда вам нужно получить к нему доступ через '# {text}', а не через '# {arg1}'. И не забывайте об апострофах вокруг него: 'tap_when_element_exists (" RadioButton contentDescription: '# {text}' ")' – kjuri

0

@kjuri - ваше решение теперь работает, кажется, что в моем окна окружающей среды, созданной он смотрел на неверный шаг def, я очистил папку и снова запустил - в основном ее снова включили и снова! Большое вам спасибо за ваше терпение по этому поводу и за вашу помощь. Чтобы суммировать это сработало:

Then/^ Я касаюсь содержимогоОписание «(. *?)» Text $/do | text | tap_when_element_exists ("RadioButton contentDescription: '# {text}'") конец

+0

Я рад, что смог помочь :) – kjuri

 Смежные вопросы

  • Нет связанных вопросов^_^