Read more

Using the full power of have_css

Arne Hartherz
October 04, 2010Software engineer at makandra GmbH

Capybara's has_css? matcher has a couple of options you might find useful.

Check that a selector appears a given number of times

Illustration UI/UX Design

UI/UX Design by makandra brand

We make sure that your target audience has the best possible experience with your digital product. You get:

  • Design tailored to your audience
  • Proven processes customized to your needs
  • An expert team of experienced designers
Read more Show archive.org snapshot

Use the :count option like this:

Then /^I should see (\d+) users?$/ do |count|
  page.should have_css('ul#users li', :count => count.to_i)
end

Check that a selector has a given text content

Use the :text option like this:

Then /^I should see a user with name "([^\"]*)"$/ do |name|
  page.should have_css('ul#users li', :text => name)
end

Note that this will only compare substrings, i.e. have_css('div', :text => 'foo') will match "<div>Hello foobear!</div>".
If you require an exact match, you need to find the element and compare its text explicitly.

Posted by Arne Hartherz to makandra dev (2010-10-04 08:05)