気ままに気ままのエンジニアブログ

定期的に得た知見を気ままに発信中

【rspec】Ambiguous match, found 2 elements matching option "hoge"の解決方法

こんにちは。

夏の台風だけはやめてくれ。日々そう願っております。

どうもハチマキです。

はじめに

業務で発生したエラーのメモを書いていきます。
忘れないうちのメモメモっと。

本日の概要 : Ambiguous match, found 2 elements matching option "hoge"の解決方法

事象

自動テスト(rspec)を追加した際にエラーが発生

エラー例

テストファイル

Failure/Error: select 'hoge'
     
 Capybara::Ambiguous:
  Ambiguous match, found 2 elements matching option "hoge"

問題点

  • bottonやselectの要素が重なっている(フィールドが1つではなく、例えば1対Nの関連だったりして、同じ名前の複数のインプットが有る場合、以下のようなエラーとなるようです。)

解決方法

firstメソッドを用いることで解決!

・修正したソースコード
select 'hoge', match: :first

もしくは、idが〇〇の要素のセレクトボックスを選択したい場合
within '#〇〇' do
 select 'hoge'
end