我正在尝试在 xamarin 窗体上的单选按钮上执行新闻事件。 单选按钮的索引为 0 到 5。
如果我运行query("RadioButton", :contentDescription)
这将返回 6 个单选按钮(索引为 0 到 5)。 单选按钮没有唯一的文本,因为它们属于一组两个按钮,因此这里的索引值 2 到 5 是组 RadioGroup 的子级,文本标签对所有按钮都是相同的。
我正在尝试做的是在单选按钮上设置一个具有特定索引的新闻事件。
在我有的功能文件中:然后我按单选按钮编号 0
我创建了一个名为 radio_button_steps.rb
的自定义步骤定义,并将其保存到默认的 calabash-android 步骤定义文件夹中
<driveLetter>:Ruby193librubygems1.9.1gemscalabash-android-0.5.8libcalabash-androidsteps
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
我试图将索引值放在带有双引号或单引号或不带引号的功能文件中,但仍然收到错误。现在我完全迷失了...
有人有什么想法吗?
在查询中,按如下方式使用索引 查询("单选按钮索引:0")
所以你的步骤 def 中的方法看起来像这样
tap_when_element_exists("RadioButton index:#{arg1}")
编辑:对不起,我重读了你的问题,我之前实际上没有回答过。要使随后的步骤起作用,您需要有一个包含该行的功能文件
Then I press RadioButton number 1
看起来你已经尝试过了,所以这不是问题。 实际的错误是说葫芦看不到您编写的步骤定义。 Calabash使用黄瓜,这是处理场景和步骤定义等的位。 Cucumber 在项目中"功能"目录中的任何位置查找步骤定义。 如果在此处创建一个文件并将步骤定义放入其中,则它应该可供测试运行使用。