capybara中fill_in集合字段的正确元素名称是什么?

时间:2014-02-27 18:16:12

标签: ruby-on-rails rspec capybara

以下是报价表单上mfg_process_id字段的html源代码。该字段由一系列过程提供。

<div class="input select required quote_mfg_process_id">
<label class="select required control-label" for="quote_mfg_process_id">
<abbr title="required">*</abbr>
<span class="translation_missing" title="translation missing: en.Mfg Process">Mfg Process</span>
</label>
<select id="quote_mfg_process_id" class="select required" name="quote[mfg_process_id]">
<option value=""></option>
<option value="1">Process 1</option>
<option value="2">Process 2</option>
</select>
</div>

此字段存在错误,代码为fill_in 'quote_mfg_process_id', :with => mfg.id(mfg是流程实例):

Capybara::ElementNotFound:
       Unable to find field "quote_mfg_process_id"

尝试使用以下内容时,错误类似:

fill_in 'quote[mfg_process_id]', :with => mfg.id
fill_in 'Mfg Process', :with => mfg.name

但是,对于同一页面上的文本字段,没有错误。我们认为错误必须由送到字段的集合引起(另一个集合字段的错误相同)。根据capybara fill_in填写字段并只传递标签文本或输入名称。但似乎不是收集领域的情况。水豚集合领域的正确名称是什么?

1 个答案:

答案 0 :(得分:1)

Capybara的fill_in用于基于文字的字段。您希望将select用于选择选项。