Class: Gless::Browser
- Inherits:
-
Object
- Object
- Gless::Browser
- Defined in:
- lib/gless/browser.rb
Overview
A very minor wrapper on the Watir::Browser class to use Gless’s config file system. Other than that it just adds logging at this point. It might do more later.
Instance Attribute Summary collapse
-
#browser ⇒ Object
readonly
The underlying Watir::Browser.
Instance Method Summary collapse
-
#initialize(config, logger) ⇒ Gless::Browser
constructor
Takes a Gless::EnvConfig object, which it uses to decide what kind of browser to launch, and launches a browser.
-
#method_missing(m, *args, &block) ⇒ Object
Pass everything else through to the Watir::Browser underneath.
Constructor Details
#initialize(config, logger) ⇒ Gless::Browser
Takes a Gless::EnvConfig object, which it uses to decide what kind of browser to launch, and launches a browser.
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/gless/browser.rb', line 19 def initialize( config, logger ) @config = config @logger = logger @logger.debug "Requested browser config: #{@config.get :global, :browser }" type=@config.get :global, :browser, :type browser=@config.get :global, :browser, :browser port=@config.get :global, :browser, :port url=@config.get_default false, :global, :browser, :url extra_capabilities=@config.get_default false, :global, :browser, :extras if ! extra_capabilities extra_capabilities = Hash.new end if browser =~ %r{^\s*ie\s*$} or browser =~ %r{^\s*internet\s*_?\s*explorer\s*$} browser = 'internet explorer' end @logger.debug "Launching some browser; #{type}, #{port}, #{browser}" if type == 'remote' @logger.info "Launching remote browser #{browser} on port #{port}" capabilities = Selenium::WebDriver::Remote::Capabilities.new( :browser_name => browser, :javascript_enabled=>true, :css_selectors_enabled=>true, :takes_screenshot=>true, ) # Load in any other stuff the user asked for @logger.debug "Requested extra capabilities: #{extra_capabilities.inspect}" extra_capabilities.each do |key, value| @logger.debug "Adding capability #{key} with value #{value}" capabilities[key] = value end if url @logger.debug "Launching with custom url #{url}" else url = "http://127.0.0.1:#{port}/wd/hub" end client = Selenium::WebDriver::Remote::Http::Default.new client.timeout = config.get_default( 600, :global, :browser, :timeout ) @browser = Watir::Browser.new(:remote, :url => url, :desired_capabilities => capabilities, :http_client => client) else @logger.info "Launching local browser #{browser}" @browser = Watir::Browser.new browser end end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(m, *args, &block) ⇒ Object
Pass everything else through to the Watir::Browser underneath.
73 74 75 |
# File 'lib/gless/browser.rb', line 73 def method_missing(m, *args, &block) @browser.send(m, *args, &block) end |
Instance Attribute Details
#browser ⇒ Object (readonly)
The underlying Watir::Browser
10 11 12 |
# File 'lib/gless/browser.rb', line 10 def browser @browser end |