class RainforestRubyRuntime::Drivers::Selenium

Attributes

browsers[R]

Public Class Methods

new(options) click to toggle source
# File lib/rainforest_ruby_runtime/drivers/selenium.rb, line 6
def initialize(options)
  @browsers = options[:browsers]
end

Public Instance Methods

to_rspec(tests) click to toggle source
# File lib/rainforest_ruby_runtime/drivers/selenium.rb, line 10
def to_rspec(tests)
  RSpec.describe 'Rainforest', tests: tests, browsers: browsers do
    metadata[:tests].each do |test|
      describe "[#{test.id}] #{test.title}" do
        metadata[:browsers].each do |browser|
          let(:current_driver) { Capybara.current_session.driver }

          after do
            if current_driver.respond_to?(:finish!)
              current_driver.finish!
            elsif current_driver.respond_to?(:quit)
              current_driver.quit
            end
          end

          specify browser do
            # for whatever reason, this line no longer works if put in a `before` block
            current_driver.options[:browser] = browser

            test.run
          end
        end
      end
    end
  end
end

Private Instance Methods

current_driver() click to toggle source
# File lib/rainforest_ruby_runtime/drivers/selenium.rb, line 39
def current_driver
  Capybara.current_session.driver
end