Class: Watir::Provider

Inherits:
Object
  • Object
show all
Includes:
DRbUndumped
Defined in:
lib/provider.rb

Overview

Extend Watir with a Provider class to determine which driver type is supported by the remote DRb process. This returns the DRb front object.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(driver = nil) ⇒ Provider

Returns a new instance of Provider.



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
# File 'lib/provider.rb', line 21

def initialize(driver=nil)
  case driver.downcase.to_sym
    when :safariwatir
      require 'safariwatir'
      @browser = Watir::Safari
    when :firewatir
      require 'firewatir'
      @browser = FireWatir::Firefox
    when :watir
      require 'watir'
      @browser = Watir::IE
    when :webdriver
      require 'watir-webdriver'
      @browser = Watir::Browser
    when :webdriver_performance
      require 'watir-webdriver'
      require 'watir-webdriver-performance'
      @browser = Watir::Browser
    when :webdriver_remote
      require 'watir-webdriver'
      require 'selenium-webdriver'
      @browser = Watir::Browser
    when :selenium
      require 'selenium-webdriver'
      @browser = Selenium::WebDriver
  end
end

Instance Attribute Details

#browserObject (readonly)

Returns the value of attribute browser.



19
20
21
# File 'lib/provider.rb', line 19

def browser
  @browser
end

Instance Method Details

#new_browser(browser_type = 'firefox') ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/provider.rb', line 49

def new_browser(browser_type='firefox')
  case @browser.inspect
  when "Selenium::WebDriver"
    if browser_type == :htmlunit
      caps = Selenium::WebDriver::Remote::Capabilities.htmlunit(:javascript_enabled => true)
      @browser.for(:remote, :url => "http://127.0.0.1:4444/wd/hub", :desired_capabilities => caps)
    else
      @browser.for browser_type.to_sym
    end
  when "Watir::Browser"
    if @browser_type == :htmlunit
      caps = Selenium::WebDriver::Remote::Capabilities.htmlunit(:javascript_enabled => true)
      @browser.new(:remote, :url => "http://127.0.0.1:4444/wd/hub", :desired_capabilities => caps)
    else
      @browser.new browser_type.to_sym
    end
  when "Watir::Safari"
    @browser.new
  when "FireWatir::Firefox"
    @browser.new
  when "Watir::IE"
    @browser.new
  else
    @browser.new
  end
end

#renew_providerObject



76
77
78
# File 'lib/provider.rb', line 76

def renew_provider
  self.class.superclass
end