capybara assert attributes of an element

kriysna picture kriysna · Mar 1, 2011 · Viewed 69.7k times · Source

I'm using RSpec2 and Capybara for acceptance testing.

I would like to assert that link is disabled or not in Capybara. How can I do this?

Answer

bowsersenior picture bowsersenior · Aug 21, 2011

Another simple solution is to access the HTML attribute you are looking for with []:

find('#my_element')['class']
# => "highlighted clearfix some_other_css_class"

find('a#my_element')['href']
# => "http://example.com

# or in general, find any attribute, even if it does not exist
find('a#my_element')['no_such_attribute']
# => ""

Note that Capybara will automatically try to wait for asynchronous requests to finish, but it may not work in some cases:

Here is one workaround if you are having trouble with assertions on elements that are updated asynchronously: