capybara-validate_html5

capybara-validate_html5 validates the HTML5 for each page parsed, and fails if there are any HTML5 parse errors on the page. This makes it easy to automatically test for HTML5 validity when running your normal capybara test suite.

This only works for the rack-test driver.

Installation

gem install capybara-validate_html5

Source Code

Source code is available on GitHub at https://github.com/jeremyevans/capybara-validate_html5

Examples

require 'capybara/validate_html5'

describe 'capybara-validate_html5' do
include Rack::Test::Methods
include Capybara::DSL

def app
  MyRackApp
end

it "should allow restoring of state" do
  visit '/' # No validation on retrieval
  page.body # No validation on body access

  page.all("a") # Attempt to parse body, validates HTML, raises exception if not valid
  page.all("a") # No validation, as same body already parsed

  visit '/page1'
  click_link 'Go Somewhere' # Attempt to parse body, validates HTML, raises exception if not valid

  visit '/page2'
  skip_html_validation do
    click_button 'Submit' # No validation, as it was explicitly skipped
  end
end
end

Custom HTML Validation

You can perform your own custom validation of HTML elements, by calling Capybara.custom_html_validation. This will be passed the Nokogiri document and a block, and should call the block with any Nokogiri elements that are considered invalid:

Capybara.custom_html_validation do |doc, &block|
s = "*[required=true], *[required=false], input[checked=true], input[checked=false]"
doc.css(s).map(&block)
end

License

MIT

Author

Jeremy Evans [email protected]