手动命名标签时,Rails系统测试失败

时间:2017-12-12 17:59:46

标签: ruby-on-rails capybara

在表单中,我手动命名了一个标签:

<%= f.label :name, "DEA License Number" %>
<%= f.text_field :dea_license_number, class: 'form-control'  %>

HTML看起来像这样:

<label for="dentist_detail_name">DEA License Number</label>
<input class="form-control" type="text" name="dentist_detail[dea_license_number]" id="dentist_detail_dea_license_number" />

我的系统测试:

fill_in "DEA License Number", with: "999999"

当我运行测试时,我得到了这个:

Error:
SignUpJobSeekersTest#test_Sign_Up_Job_Seekers:
Capybara::ElementNotFound: Unable to find visible field "DEA License Number" that is not disabled

我有点失落。感谢您支持新手。

2 个答案:

答案 0 :(得分:1)

我认为你的标签有问题。它应该是

<%= f.label :dea_license_number, "DEA License Number" %>

试一试?

答案 1 :(得分:1)

当您查看生成的HTML时,label元素的for属性与输入的id属性不匹配

'dentist_detail_name' != 'dentist_detail_dea_license_number'

因此标签实际上与输入无关(标签必须包裹输入或for必须与id匹配)。