On May 15, 2012, at 12:47 AM, Patrick J. Collins wrote: > Capybara has two methods: > > page.has_button? > > and > > page.has_link? > > ... I am wondering, how can I make a helper method that will be > satisfied by one or the other? In other words, I want to be able to do: > > page.should have_link_or_button("blah") > > def have_link_or_button(locator) > have_link(locator) || have_button(locator) > end > > But that doesn't work... Is there any way to do this? > > Patrick J. Collins > http://collinatorstudios.com > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users
You need a custom matcher, something like this: RSpec::Matchers.define :have_link_or_button do |locator| match do |page| page.has_button?(locator) || page.has_link?(locator) end end BTW, I believe Capybara has a method that checks for a button *or* link - look into that. _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users