Ruby-on-rails – capybara: page.should have_no_content doesn’t work correctly for display:none element


I would like to use page.should have_no_content to check if the page doesn't display the label to user, here what it is in HTML:

<li id="account_input" style="display: none;">
    <label for="account_name">My Account</label>

So when I use page.should have_no_content("My Account"), it returns false instead of true.

Best Solution

You could use this statement

find('#account_input').should_not be_visible
Related Question