CapybaraSelenium
Dead-simple way to make Capybara and Selenium play together
Roadmap
CapybaraSelenium is on its way towards 1.0.0. Please refer to issues for details.
Installation
Add this line to your application's Gemfile:
gem 'capybara-selenium'
And then execute:
$ bundle
Or install it yourself as:
$ gem install capybara-selenium
Usage
Supported applications:
- [X] Modular sinatra apps (through config.ru)
- [ ] Rails apps
Option 1: Using a block in constructor call (Recommended)
# features/support/continous_integration.rb
CapybaraSelenium::Configurator.new do
rack_app_server.configure do |config|
config.host = ENV['CI_APP_SERVER_HOST'] || 'localhost'
config.port = ENV['CI_APP_SERVER_PORT'] || 8080
config.config_ru_path = File.(
File.join(__FILE__, '../web_app/config.ru'))
end
remote_selenium_server.configure do |config|
config.server_url = ENV['CI_SELENIUM_SERVER_URL'] ||
'http://127.0.0.1:4444/wd/hub'
config.capabilities = { browser_name: browser_name }
end
end
Option 2: Using instance methods
# features/support/continous_integration.rb
module ContinousIntegration
def driver_for(browser_name)
@configurator = CapybaraSelenium::Configurator.new
configure_rack_app_server
configure_selenium_server(browser_name)
@configurator.apply
end
def configure_rack_app_server
@configurator.rack_app_server.configure do |config|
config.host = ENV['CI_APP_SERVER_HOST'] || 'localhost'
config.port = ENV['CI_APP_SERVER_PORT'] || 8080
config.config_ru_path = File.(
File.join(__FILE__, '../web_app/config.ru'))
end
end
def configure_selenium_server(browser_name)
@configurator.remote_selenium_server.configure do |config|
config.server_url = ENV['CI_SELENIUM_SERVER_URL'] ||
'http://127.0.0.1:4444/wd/hub'
config.capabilities = { browser_name: browser_name }
end
end
end
World(ContinousIntegration)
Contributing
- Fork it ( https://github.com/dsaenztagarro/capybara_selenium/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request