我有一个表单页面,其中包含电子邮件地址和密码的确认字段,两者都带有“确认”标签。正如预期的那样,使用 RSpec 运行时会失败。如果我使标签独一无二,例如将电子邮件标签更改为“电子邮件确认”,那么它将通过。我宁愿保持标签不变。如果我使用 form_for 生成的电子邮件 ID,Capybara 似乎很高兴,但测试失败。我也试过这个名字,结果相同。
RSpec/水豚提取物:
fill_in "company_contact_email_confirmation", with: "example@example.com"
form_for 提取:
<div class="field">
<%= f.label :contact_email_confirmation, "Confirmation" %><br />
<%= f.email_field :contact_email_confirmation %>
</div>
生成源:
<div class="field">
<label for="company_contact_email_confirmation">Confirmation</label><br>
<input id="company_contact_email_confirmation" name="company[contact_email_confirmation]" size="30" type="email">
</div>
错误信息:
1) 使用有效信息注册的公司页面应创建公司
Failure/Error: expect { click_button submit }.to change(Company, :count).by (1)
count should have been changed by 1, but was changed by 0
如果我使用 Capybara within
,正如这里其他地方所建议的那样,它仍然不起作用:
RSpec/水豚提取物:
within ".email_stuff" do
fill_in "Confirmation", with: "example@example.com"
end
form_for 提取:
<div class="email_stuff">
<div class="field">
<%= f.label :contact_email_confirmation, "Confirmation" %><br />
<%= f.email_field :contact_email_confirmation %>
</div>
</div>
生成源:
<div class="email_stuff">
<div class="field">
<label for="company_contact_email_confirmation">Confirmation</label><br />
<input id="company_contact_email_confirmation" name="company[contact_email_confirmation]" size="30" type="email" />
</div>
</div>
Capybara 似乎没有抱怨,但测试失败并出现同样的错误。如何让 Capybara 允许我在同一个表单上使用同一个标签两次?