メールアドレスとパスワードの確認フィールドを含むフォームページがあり、どちらも「確認」というラベルが付いています。これは、RSpec で実行すると、予想どおり失敗します。たとえば、電子メールのラベルを「電子メールの確認」に変更して、ラベルを一意にすると、合格します。ラベルはそのままでいいと思います。form_for で生成されたメール ID を使用すると、カピバラは満足しているように見えますが、テストは失敗します。私も同じ結果で名前を試しました。
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 で同じフォームに同じラベルを 2 回使用できるようにするにはどうすればよいですか?