A long-lived project that still receives updates
capybara-validate 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.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Development

Runtime

 Project Readme

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 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 <code@jeremyevans.net>