Using the full power of have_css

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

Check that a selector appears a given number of times

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.

Arne Hartherz Over 13 years ago