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
Posted by Jakob Scholz to makandra dev (2020-02-05 15:40)