Aprendiendo Capybara con Ficheros HTML Locales

Para probar Capybara con ficheros HTML locales standalone usaremos el siguiente programa:

[~/sinatra/sinatra-selenium/intro(gh-pages)]$ cat testinglocalhtml.rb 
#!/usr/bin/env ruby
# This program evaluates a Capybara script against
# a local HTML page
# Usage:
#         testinglocalhtml index.html capybara_script.rb  [poltergeist]
require "capybara"
require 'capybara/poltergeist'
require 'rspec/expectations'

exit(1) if ARGV.length < 2
html, capybara = ARGV[0,2]
driver = (ARGV[2] || :selenium).to_sym

File.open(html) do |h|
  html = h.read
  File.open(capybara) do |c|
    capybara = c.read

    app = proc { |env| [200, { "Content-Type" => "text/html" }, [html] ] }

    session = Capybara::Session.new(driver, app)

    session.instance_eval capybara
  end
end

Esta es la forma en la que se ejecuta. El primer argumento es la página y el segundo el script capybara en el que se indica que pruebas se van a hacer:

$ ./testinglocalhtml.rb click.html find_and_click.rb

Ejemplo del script Capybara que se usa como segundo argumento:

[~/sinatra/sinatra-selenium/intro(gh-pages)]$ cat find_and_click.rb 
visit '/'
sleep 2
find('#mydiv').click
sleep 2
accept_alert
sleep 2

Tambien puede llamarse así:

$ ./testinglocalhtml.rb index.html script.rb poltergeist
Casiano Rodriguez León 2015-06-18