Last active
August 29, 2015 14:20
-
-
Save hogihung/e52dc1a7dcd3ff461e69 to your computer and use it in GitHub Desktop.
Sample Capybara file for use with cucumber/selenium/poltergeist.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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