Created
January 15, 2014 17:41
-
-
Save awls99/8440770 to your computer and use it in GitHub Desktop.
Notes on having more then one browser supported in cucumber at the same time.
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
########## CUCUMBER SAMPLE ########### | |
Given user "jon" goes to "google.com" | |
#turns into: | |
Given /^user "([^"]*)" goes to "([^"]*)"/ do |user_key, url| | |
@users[user_key].browse do |browser| | |
browser.goto url | |
end | |
end | |
######## HOOKS SAMPLE ############### | |
screenshot_files = Dir.glob File.join( Browser::PATH_TO_SCREENSHOT_FOLDER, '*.base64') | |
#no need to check if tests failed, screenshots are only created if they do! | |
screenshot_files.each do |file_path| | |
embed "data:image/png;base64,#{File.read( file_path )}", 'image/png' | |
File.delete file_path | |
end | |
######### BROWSER MODULE ############# | |
require 'rubygems' | |
require 'selenium-webdriver' | |
require 'watir-webdriver' | |
module Browser | |
#CHANGE THIS PATH ACCORDING TO YOUR NEEDS! | |
PATH_TO_SCREENSHOT_FOLDER = File.join( File.dirname(__FILE__), '..','public' ) | |
#SIMPLE SAMPLE | |
def browser | |
return @browser if @browser | |
@browser = Watir::Browser.new :firefox | |
end | |
def browse close_at_end = false, &block | |
error = nil | |
begin | |
yield self.browser | |
rescue => e | |
error = e | |
$stderr.puts 'HTML:' | |
$stderr.puts self.browser.html | |
File.open( File.join( PATH_TO_SCREENSHOT_FOLDER,"errorshot#{Time.now.to_i.to_s}.base64" ), 'w') do |file| | |
file.write self.browser.screenshot.base64 | |
end | |
ensure | |
self.close if close_at_end | |
raise error if error | |
end | |
end | |
def close | |
@browser.close | |
@browser = false | |
return true | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment