前提
capybara ではDSLを使いフォームとやりとりすることが出来ます。
fill_in 'タイトル', with: '響け!ユーフォニアム'
fill_inメソッド によって、フォーム要素のname, もしくは id, もしくはラベルに、「タイトル」 とあるテキストフィールドを埋めることが出来ます。
問題
フィールドが1つならよいのですが、例えば1対Nの関連だったりして、同じ名前の複数のインプットが有る場合、以下のようなエラーとなります。
Capybara::Ambiguous:
Ambiguous match, found 2 elements matching field "タグ"
firstメソッド を用いて、
first(:fillable_field, 'タグ').set('春アニメ')
することも出来るのですが、せっかくですので DSL っぽく書きたい。
解決法
そんなときには、
fill_in 'タグ', with: '春アニメ', match: :first
とすることによって、findメソッド由来のオプションを付加することが出来ます。
補足
capybaraドキュメントのMatching節 では、exact, match の二つのオプションが使えるようです。
同様に内部でfindを使っている click_link, click_button などのアクションに対しても有効だと思われます。