Capybara ::由ID提供的ElementNotFound广播

时间:2015-06-19 00:30:40

标签: ruby-on-rails-4 capybara

我理解Capybara选择单选按钮的语法如下

choose("Label Name")

我遇到的问题是,对于标签的默认名称已更改为#id

这是我的HTML

 <label for="school_application_I_20"> Do you require an I-20 Form?</label>
    <br>
    <label for="school_application_I_20_true">Yes</label>
    <input id="i-20-1" name="school_application[I_20]" type="radio" value="true" />
    <label for="school_application_I_20_false">No</label>
    <input id="i-20-2" name="school_application[I_20]" type="radio" value="false" />
    <br>

当我尝试使用

选择元素的旧方法时
 choose('school_application_I_20_true')

我得到了

Capybara::ElementNotFound:
   Unable to find radio button "school_application_I_20_true"

当我更改选择使用元素ID时,我得到的错误与ID相同。有没有办法按ID选择单选按钮?

2 个答案:

答案 0 :(得分:0)

因此,choose()的第一个和默认功能都需要#id

但是没有指定#字符。

答案 1 :(得分:0)

您正在映射标签并尝试将其视为收音机?也许映射了type = radio的输入,很可能你就可以使用该元素的choose方法:

choose("i-20-1")

不确定你是否真的需要#之前的#选择方法...如果它没有找到该元素成功尝试:

choose("#i-20-1")