Sha256: 96f14648538b57fc5276b5bf28953a09ece61ae0e0bb85d8418a996b542f8a90

Contents?: true

Size: 1.85 KB

Versions: 35

Compression:

Stored size: 1.85 KB

Contents

require 'selenium/webdriver/remote/http/persistent'

module PageObject
  module PersistantBrowser
    @@browser = false
    def self.get_browser
      if !@@browser
        target = ENV['BROWSER']
        target = 'firefox_local' unless target

        if is_remote?(target)
          require File.dirname(__FILE__) + "/targets/#{target}"
          extend Target
        end
        
        @@browser =  watir_browser(target) if ENV['DRIVER'] == 'WATIR'
        @@browser =  selenium_browser(target) if ENV['DRIVER'] == 'SELENIUM'
      end
      @@browser
    end
    
    def self.quit
      @@browser.quit
    end

    private

    def self.is_remote?(target)
      not target.include? 'local'
    end

    def self.watir_browser(target)
      if is_remote?(target)
        Watir::Browser.new(:remote,
                           :http_client => client,
                           :url => url,
                           :desired_capabilities => desired_capabilities)
      else
        Watir::Browser.new :firefox, :http_client => client
      end
    end

    def self.selenium_browser(target)
      if is_remote?(target)
        Selenium::WebDriver.for(:remote,
                                :http_client => client,
                                :url => url,
                                :desired_capabilities => desired_capabilities)
      else
        Selenium::WebDriver.for :firefox, :http_client => client
      end
    end

    def self.client
      Selenium::WebDriver::Remote::Http::Persistent.new
    end

    def self.capabilities(browser, version, platform, name)
      caps = Selenium::WebDriver::Remote::Capabilities.send browser
      caps.version = version
      caps.platform = platform
      caps[:name] = name
      caps
    end

    def self.url
      "http://pageobject:18002ee8-963b-472e-9425-2baf0a2b6d95@ondemand.saucelabs.com:80/wd/hub"
    end
  end
end

Version data entries

35 entries across 35 versions & 4 rubygems

Version Path
page-object-1.2.0 features/support/persistent_browser.rb
page-object-1.1.1 features/support/persistent_browser.rb
page_object-1.1.3 features/support/persistent_browser.rb
page_object-1.1.2 features/support/persistent_browser.rb
page_object-1.1.1 features/support/persistent_browser.rb
page-object-1.1.0 features/support/persistent_browser.rb
page-object-lds-0.0.14 features/support/persistent_browser.rb
page-object-lds-0.0.13 features/support/persistent_browser.rb
page-object-lds-0.0.12 features/support/persistent_browser.rb
page-object-lds-0.0.11 features/support/persistent_browser.rb
page-object-lds-0.0.1 features/support/persistent_browser.rb
page-object-1.0.3 features/support/persistent_browser.rb
meeane-page-object-0.1.11 features/support/persistent_browser.rb
page-object-1.0.2 features/support/persistent_browser.rb
page-object-1.0.1 features/support/persistent_browser.rb
page-object-1.0 features/support/persistent_browser.rb
page-object-0.9.8 features/support/persistent_browser.rb
page-object-0.9.7 features/support/persistent_browser.rb
page-object-0.9.6 features/support/persistent_browser.rb
page-object-0.9.5 features/support/persistent_browser.rb