Class: Teaspoon::Drivers::SeleniumDriver

Inherits:
Base
  • Object
show all
Defined in:
lib/teaspoon/drivers/selenium_driver.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = nil) ⇒ SeleniumDriver

Returns a new instance of SeleniumDriver.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/teaspoon/drivers/selenium_driver.rb', line 12

def initialize(options = nil)
  options ||= {}
  case options
  when Hash   then @options = options
  when String then @options = JSON.parse(options)
  else raise Teaspoon::UnknownDriverOptions, "Unknown driver options -- supply a hash or json string"
  end

rescue JSON::ParserError
  raise Teaspoon::UnknownDriverOptions, "Malformed driver options -- supply a hash or json string"
end

Instance Method Details

#run_specs(runner, url) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/teaspoon/drivers/selenium_driver.rb', line 24

def run_specs(runner, url)
  driver = Selenium::WebDriver.for(driver_options[:client_driver])
  driver.navigate.to(url)

  Selenium::WebDriver::Wait.new(driver_options).until do
    done = driver.execute_script("return window.Teaspoon && window.Teaspoon.finished")
    driver.execute_script("return window.Teaspoon && window.Teaspoon.getMessages() || []").each do |line|
      runner.process("#{line}\n")
    end
    done
  end
ensure
  driver.quit if driver
end