Capybara 'fill_in': Ambiguous match for different input names

Updated . Posted . Visible to the public.

When you have two inputs, where one contains the name of the other (eg. Name and Name with special treatment), Capybara's fill_in method will fail with the following message:

Ambiguous match, found 2 elements matching visible field "Name" that is not disabled (Capybara::Ambiguous)

You can force Capybara to match exactly what you are typing (which makes your tests better anyways) with match: :prefer_exact:

name = 'Name'
value = 'Bettertest Cucumberbatch'
fill_in(field, with: value, match: :prefer_exact)

Furthermore, we recommend setting Capybara's matching strategy Show archive.org snapshot globally to :prefer_exact. This will positively affect all you steps (including those of gems like Spreewald Show archive.org snapshot ) as it prevents the Capybara::Ambiguous error in the edge case when two fields are matching the given name, but one of the matches includes the name only as a substring,

Capybara.match = :prefer_exact
Jakob Scholz
Last edit
Michael Leimstädtner
License
Source code in this card is licensed under the MIT License.
Posted by Jakob Scholz to makandra dev (2020-02-05 15:40)