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

Rails system tests fail when I manually name a label

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

<%= 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

我有点不知所措。感谢新手支持

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

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

试试看?

当您查看生成的 HTML 时,标签元素的 for 属性与输入

id 属性不匹配
'dentist_detail_name' != 'dentist_detail_dea_license_number'

因此标签实际上并未与输入相关联(标签必须包装输入或 for 必须匹配 id)。