Class: Selenium::WebDriver::Driver

Inherits:
Object
  • Object
show all
Includes:
Find
Defined in:
lib/selenium/webdriver/driver.rb

Overview

The main class through which you control the browser.

See Also:

Constant Summary

Constant Summary

Constants included from Find

Find::FINDERS

Instance Attribute Summary (collapse)

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods included from Find

#find_element, #find_elements

Constructor Details

- (Driver) initialize(bridge)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

A new Driver instance with the given bridge



61
62
63
64
65
66
67
68
# File 'lib/selenium/webdriver/driver.rb', line 61

def initialize(bridge)
  @bridge = bridge

  # TODO: refactor this away
  unless @bridge.driver_extensions.empty?
    extend(*@bridge.driver_extensions)
  end
end

Instance Attribute Details

- (Object) bridge (readonly)

Returns the value of attribute bridge



16
17
18
# File 'lib/selenium/webdriver/driver.rb', line 16

def bridge
  @bridge
end

Class Method Details

+ (Driver) for(browser, *args)

Create a new Driver instance with the correct bridge for the given browser

Examples:


Driver.for :firefox, :profile => "some-profile"
Driver.for :firefox, :profile => Profile.new
Driver.for :remote,  :url => "http://localhost:4444/wd/hub", :desired_capabilities => caps

Parameters:

  • browser (:ie, :internet_explorer, :remote, :chrome, :firefox, :ff)

    the driver type to use

  • *rest

    arguments passed to Bridge.new

Returns:



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/selenium/webdriver/driver.rb', line 37

def for(browser, *args)
  bridge = case browser
           when :ie, :internet_explorer
             IE::Bridge.new(*args)
           when :remote
             Remote::Bridge.new(*args)
           when :chrome
             Chrome::Bridge.new(*args)
           when :firefox, :ff
             Firefox::Bridge.new(*args)
           else
             raise ArgumentError, "unknown driver: #{browser.inspect}"
           end

   new(bridge)
end

Instance Method Details

- (WebDriver::Element) [](sel)

Get the first element matching the given selector. If given a String or Symbol, it will be used as the id of the element.

Parameters:

  • id (String, Hash)

    or selector

Returns:

  • (WebDriver::Element)

    driver #=> #<WebDriver::Element:0x1011c3b88> driver[:tag_name => 'div'] #=> #<WebDriver::Element:0x1011c3b88>



242
243
244
245
246
247
248
# File 'lib/selenium/webdriver/driver.rb', line 242

def [](sel)
  if sel.kind_of?(String) || sel.kind_of?(Symbol)
    sel = { :id => sel }
  end

  find_element sel
end

- (Object) close

Close the current window, or the browser if no windows are left.



171
172
173
# File 'lib/selenium/webdriver/driver.rb', line 171

def close
  bridge.close
end

- (String) current_url

Get the URL of the current page

Returns:



115
116
117
# File 'lib/selenium/webdriver/driver.rb', line 115

def current_url
  bridge.getCurrentUrl
end

- (WebDriver::Element, ...) execute_script(script, *args) Also known as: script

Execute the given JavaScript

Parameters:

  • script (String)

    JavaScript source to execute

  • *args (WebDriver::Element, Integer, Float, Boolean, NilClass, String, Array)

    Arguments will be available in the given script as the 'arguments' array.

Returns:



208
209
210
# File 'lib/selenium/webdriver/driver.rb', line 208

def execute_script(script, *args)
  bridge.executeScript(script, *args)
end

- (Object) get(url)

Opens the specified URL in the browser.



105
106
107
# File 'lib/selenium/webdriver/driver.rb', line 105

def get(url)
  navigate.to(url)
end

- (Object) inspect



70
71
72
# File 'lib/selenium/webdriver/driver.rb', line 70

def inspect
  '#<%s:0x%x browser=%s>' % [self.class, hash*2, bridge.browser.inspect]
end

- (Options) manage

Returns:

See Also:



97
98
99
# File 'lib/selenium/webdriver/driver.rb', line 97

def manage
  @manage ||= WebDriver::Options.new(self)
end

Returns:

See Also:



79
80
81
# File 'lib/selenium/webdriver/driver.rb', line 79

def navigate
  @navigate ||= WebDriver::Navigation.new(self)
end

- (String) page_source

Get the source of the current page

Returns:



135
136
137
# File 'lib/selenium/webdriver/driver.rb', line 135

def page_source
  bridge.getPageSource
end

- (Object) quit

Quit the browser



163
164
165
# File 'lib/selenium/webdriver/driver.rb', line 163

def quit
  bridge.quit
end

- (Object) ref

for Find



257
258
259
# File 'lib/selenium/webdriver/driver.rb', line 257

def ref
  nil
end

- (TargetLocator) switch_to

Returns:

See Also:



88
89
90
# File 'lib/selenium/webdriver/driver.rb', line 88

def switch_to
  @switch_to ||= WebDriver::TargetLocator.new(self)
end

- (String) title

Get the title of the current page

Returns:



125
126
127
# File 'lib/selenium/webdriver/driver.rb', line 125

def title
  bridge.getTitle
end

- (Object) visible=(bool)

Set the visibility of the browser. Not applicable for all browsers.

Parameters:

  • (Boolean)


155
156
157
# File 'lib/selenium/webdriver/driver.rb', line 155

def visible=(bool)
  bridge.setBrowserVisible bool
end

- (Boolean) visible?

Get the visibility of the browser. Not applicable for all browsers.

Returns:

  • (Boolean)


145
146
147
# File 'lib/selenium/webdriver/driver.rb', line 145

def visible?
  bridge.getBrowserVisible
end

- (String) window_handle

Get the current window handle

Returns:



192
193
194
# File 'lib/selenium/webdriver/driver.rb', line 192

def window_handle
  bridge.getCurrentWindowHandle
end

- (Array) window_handles

Get the window handles of open browser windows.

Returns:

  • (Array)

See Also:



182
183
184
# File 'lib/selenium/webdriver/driver.rb', line 182

def window_handles
  bridge.getWindowHandles
end