Capybara::ElementNotFound 按 id 收音机

Capybara::ElementNotFound radio by id

我理解 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 select 单选按钮?

因此 choose() 的第一个默认功能采用 #id

但是没有指定#字符。

您正在映射标签并试图将其视为收音机?也许映射具有 type=radio 的输入,那么很可能您将能够对该元素使用 choose 方法:

choose("i-20-1")

不确定您是否真的需要在 id 之前的 # 来选择方法...如果它没有成功找到元素,请尝试:

choose("#i-20-1")