Sha256: b674358fcccb59ec5db2f3209bd668dc610783c0899c7c5afe6454c10ddad6ae

Contents?: true

Size: 1.18 KB

Versions: 6

Compression:

Stored size: 1.18 KB

Contents

require "selenium-webdriver"
require "teaspoon/runner"

module Teaspoon
  module Drivers
    class SeleniumDriver < BaseDriver

      # note: driver_cli_options which is meant to be used for CLI options to pass into the driver is 
      #       currently ignored. We use the Selenium Ruby binding, so the Selenium command-line options
      #       aren't used. There are a variety of Selenium options and browser-specific options
      #       supported by the binding that will take more thought and design to configure cleanly.
      def run_specs(suite, url, driver_cli_options = nil)
        runner = Teaspoon::Runner.new(suite)

        driver = Selenium::WebDriver.for(:firefox)
        driver.navigate.to(url)

        Selenium::WebDriver::Wait.new(timeout: 180, interval: 0.01, message: "Timed out").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

        runner.failure_count
      ensure
        driver.quit if driver
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
teaspoon-0.7.9 lib/teaspoon/drivers/selenium_driver.rb
teaspoon-0.7.8 lib/teaspoon/drivers/selenium_driver.rb
teaspoon-0.7.7 lib/teaspoon/drivers/selenium_driver.rb
teaspoon-0.7.6 lib/teaspoon/drivers/selenium_driver.rb
teaspoon-0.7.5 lib/teaspoon/drivers/selenium_driver.rb
teaspoon-0.7.4 lib/teaspoon/drivers/selenium_driver.rb