calabash-android |断言radioButton自定义步骤帮助请

时间:2015-04-24 14:29:34

标签: android calabash calabash-android

我正试图在xamarin表格上的radiobutton上进行新闻发布会。无线电按钮的索引为0到5。

如果我运行query("RadioButton", :contentDescription),则会返回6个radioButtons(索引为0到5)。 radiobuttons没有唯一的文本,因为它们属于一组两个按钮,因此这里的索引值2到5是RadioGroup组的子项,文本标签对所有人都是相同的。

我要做的是在radioButton上设置一个具有特定索引的新闻事件。

在功能文件中我有:然后我按RadioButton数字0

我创建了一个名为radio_button_steps.rb的自定义步骤定义,并将其保存到默认的calabash-android步骤定义文件夹

<driveLetter>:\Ruby193\lib\ruby\gems\1.9.1\gems\calabash-android-0.5.8\lib\calabash-android\steps

radio_button_steps.rb的语法是:

Given /^I press the "([^\"]*)" RadioButton$/ do |text|
  tap_when_element_exists("android.widget.RadioButton {text CONTAINS[c] '#{text}'}")
end

Then /^I press RadioButton number (\d+)$/ do |index|
  tap_when_element_exists("android.widget.RadioButton index:#{index.to_i-1}")
end

结果返回:

Then(/^I press RadioButton number (\d+)$/) do |arg1|
  pending # express the regexp above with the code you wish you had
end

我尝试将索引值放在功能文件中,使用double或single或不带引号,但仍然会收到错误。现在我完全失去了......

任何想法?

1 个答案:

答案 0 :(得分:2)

在查询中,您使用索引,如下所示     查询(“RadioButton index:0”)

所以你的步骤def中的方法看起来像这样

tap_when_element_exists("RadioButton index:#{arg1}")
编辑:对不起,我重读了你的问题,之前我没有真正回答过。 为了让您的步骤更加有效,您需要一个包含

行的功能文件
Then I press RadioButton number 1

看起来你已经尝试了,所以这不是问题。实际的错误是说calabash看不到你写的步骤定义。 Calabash使用黄瓜,它处理场景和步骤定义等.Cugcumber在项目的'features'目录中的任何位置查找步骤定义。如果您在此处创建文件并将步骤定义放入其中,那么它应该可供您的测试运行使用。