Skip to content

Instantly share code, notes, and snippets.

@hogihung
Last active August 29, 2015 14:20
Show Gist options
  • Save hogihung/e52dc1a7dcd3ff461e69 to your computer and use it in GitHub Desktop.
Save hogihung/e52dc1a7dcd3ff461e69 to your computer and use it in GitHub Desktop.
Sample Capybara file for use with cucumber/selenium/poltergeist.
require 'capybara'
require 'capybara/cucumber'
require 'selenium-webdriver'
require 'capybara/poltergeist'
require 'open-uri'
require 'pry'
require 'pathname'
if ENV['SELENIUM']
Capybara.default_wait_time = 10
Capybara.default_driver = :selenium
Capybara.register_driver :selenium do |app|
prefs = {
'download' => {
'default_directory' => DownloadHelpers.path.to_s,
'directory_upgrade' => true,
'extensions_to_open' => ''
}
}
caps = Selenium::WebDriver::Remote::Capabilities.chrome
caps['chromeOptions'] = {'prefs' => prefs}
Capybara::Selenium::Driver.new(app,
:browser => :chrome,
:desired_capabilities => caps,
:args => ["--window-size=1920,1080"]
)
end
if ENV['APPHOST']
# Specify a remote host. Format:
# APPHOST="http://192.168.1.0:3000"
Capybara.run_server = false
Capybara.app_host = "#{ENV['APPHOST']}"
else
# Remove the next line when Capybara can successfully start server
Capybara.run_server = false
Capybara.app_host = 'http://localhost:3000'
end
# Check to see if the server is running (for Selenium tests only)
if Capybara.default_driver == :selenium && !Capybara.run_server
begin
open(Capybara.app_host)
rescue
puts "\nCannot connect to server #{Capybara.app_host}\n\n"
exit
end
end
else
# Poltergeist -- the default
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(
app,
{
debug: false, # change this to true to troubleshoot
window_size: [1920, 1040] # this can affect dynamic layout
}
)
end
Capybara.javascript_driver = :poltergeist
Capybara.default_driver = :poltergeist
Capybara.server do |app, port|
require 'rack/handler/thin'
Thin::Logging.silent = true
Thin::Server.new('0.0.0.0', port, app).start
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment