WatirSession

This gem leverages the Watir test library to allow for easy access to configurarion and session data so they do not need to be passed around as parameters throughout your tests. The intention is to provide a solution that is easy to use and maintain, while still providing power and flexibility.

Installation

Add this line to your application's Gemfile:

gem 'watir_session'

And then execute:

$ bundle

Or install it yourself as:

$ gem install watir_session

Usage

The default WatirConfig class uses the recommended settings without needing 
 any modifications. 
The hooks into the WatirSession class are designed to work with your 
test harness (RSpec, Cucumber, etc) for maximum flexibility. 
At a minimum, you'll need to call:

WatirSession.start

WatirSession.before_each


WatirSession.after_each



Example

Here's an example for how you can add a session for Saucelabs

class SauceSession
  def initialize
    @sauce_config = SuaceConfig.new
  end
  def create_browser)
    @browser = Watir::Browser.new(:remote, url: @sauce_config.endpoint)
  end
end
require 'watir_model'

class SauceConfig < WatirModel
  key(:sauce_username) { ENV['SAUCE_USERNAME'] }
  key(:sauce_access_key) { ENV['SAUCE_ACCESS_KEY'] }
  key(:endpoint) {"http://#{sauce_username}:#{sauce_access_key}@ondemand.saucelabs.com:80/wd/hub"}
end
RSpec.configure do |config|
  WatirSession.start
  WatirSession.register_session(SauceSession.new)

  config.before(:each) do
    @browser = WatirSession.before_each
  end
  config.after(:each) do
    WatirSession.after_each
  end
end

Development

Run rake spec to run the tests To install this gem onto your local machine, run bundle exec rake install.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/titusfortner/watir_session.

License

The gem is available as open source under the terms of the MIT License.