Class: Selenium::WebDriver::Driver
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Driver
- Includes:
- SearchContext
- Defined in:
- lib/selenium/webdriver/common/driver.rb
Overview
The main class through which you control the browser.
Constant Summary
Constants included from SearchContext
Class Method Summary collapse
Instance Method Summary collapse
-
#[](sel) ⇒ WebDriver::Element
Get the first element matching the given selector.
- #browser ⇒ Object
- #capabilities ⇒ Object
-
#close ⇒ Object
Close the current window, or the browser if no windows are left.
-
#current_url ⇒ String
Get the URL of the current page.
-
#execute_async_script(script, *args) ⇒ WebDriver::Element, ...
Execute an asynchronous piece of JavaScript in the context of the currently selected frame or window.
-
#execute_script(script, *args) ⇒ WebDriver::Element, ...
(also: #script)
Execute the given JavaScript.
-
#get(url) ⇒ Object
Opens the specified URL in the browser.
-
#initialize(bridge) ⇒ Driver
constructor
private
A new Driver instance with the given bridge.
- #inspect ⇒ Object
- #manage ⇒ Options
- #navigate ⇒ Navigation
-
#page_source ⇒ String
Get the source of the current page.
-
#quit ⇒ Object
Quit the browser.
- #ref ⇒ Object private
- #switch_to ⇒ TargetLocator
-
#title ⇒ String
Get the title of the current page.
-
#visible=(bool) ⇒ Object
Set the visibility of the browser.
-
#visible? ⇒ Boolean
Get the visibility of the browser.
-
#window_handle ⇒ String
Get the current window handle.
-
#window_handles ⇒ Array
Get the window handles of open browser windows.
Methods included from SearchContext
Constructor Details
#initialize(bridge) ⇒ Driver
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. End users should use Selenium::WebDriver.for instead of using this directly.
59 60 61 62 63 64 65 66 |
# File 'lib/selenium/webdriver/common/driver.rb', line 59 def initialize(bridge) @bridge = bridge # TODO: refactor this away unless bridge.driver_extensions.empty? extend(*bridge.driver_extensions) end end |
Class Method Details
.for(browser, opts = {}) ⇒ Object
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.
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 |
# File 'lib/selenium/webdriver/common/driver.rb', line 24 def for(browser, opts = {}) listener = opts.delete(:listener) bridge = case browser when :firefox, :ff Firefox::Bridge.new(opts) when :remote Remote::Bridge.new(opts) when :ie, :internet_explorer IE::Bridge.new(opts) when :chrome Chrome::Bridge.new(opts) when :android Android::Bridge.new(opts) when :iphone IPhone::Bridge.new(opts) when :opera Opera::Bridge.new(opts) else raise ArgumentError, "unknown driver: #{browser.inspect}" end bridge = Support::EventFiringBridge.new(bridge, listener) if listener new(bridge) end |
Instance Method Details
#[](sel) ⇒ WebDriver::Element
Get the first element matching the given selector. If given a String or Symbol, it will be used as the id of the element.
Examples:
driver['someElementId'] #=> #<WebDriver::Element:0x1011c3b88>
driver[:tag_name => 'div'] #=> #<WebDriver::Element:0x1011c3b88>
262 263 264 265 266 267 268 |
# File 'lib/selenium/webdriver/common/driver.rb', line 262 def [](sel) if sel.kind_of?(String) || sel.kind_of?(Symbol) sel = { :id => sel } end find_element sel end |
#browser ⇒ Object
270 271 272 |
# File 'lib/selenium/webdriver/common/driver.rb', line 270 def browser bridge.browser end |
#capabilities ⇒ Object
274 275 276 |
# File 'lib/selenium/webdriver/common/driver.rb', line 274 def capabilities bridge.capabilities end |
#close ⇒ Object
Close the current window, or the browser if no windows are left.
169 170 171 |
# File 'lib/selenium/webdriver/common/driver.rb', line 169 def close bridge.close end |
#current_url ⇒ String
Get the URL of the current page
113 114 115 |
# File 'lib/selenium/webdriver/common/driver.rb', line 113 def current_url bridge.getCurrentUrl end |
#execute_async_script(script, *args) ⇒ WebDriver::Element, ...
Execute an asynchronous piece of JavaScript in the context of the currently selected frame or window. Unlike executing execute_script (synchronous JavaScript), scripts executed with this method must explicitly signal they are finished by invoking the provided callback. This callback is always injected into the executed function as the last argument.
225 226 227 |
# File 'lib/selenium/webdriver/common/driver.rb', line 225 def execute_async_script(script, *args) bridge.executeAsyncScript(script, *args) end |
#execute_script(script, *args) ⇒ WebDriver::Element, ... Also known as: script
Execute the given JavaScript
206 207 208 |
# File 'lib/selenium/webdriver/common/driver.rb', line 206 def execute_script(script, *args) bridge.executeScript(script, *args) end |
#get(url) ⇒ Object
Opens the specified URL in the browser.
103 104 105 |
# File 'lib/selenium/webdriver/common/driver.rb', line 103 def get(url) navigate.to(url) end |
#inspect ⇒ Object
68 69 70 |
# File 'lib/selenium/webdriver/common/driver.rb', line 68 def inspect '#<%s:0x%x browser=%s>' % [self.class, hash*2, bridge.browser.inspect] end |
#manage ⇒ Options
95 96 97 |
# File 'lib/selenium/webdriver/common/driver.rb', line 95 def manage @manage ||= WebDriver::Options.new(bridge) end |
#navigate ⇒ Navigation
77 78 79 |
# File 'lib/selenium/webdriver/common/driver.rb', line 77 def navigate @navigate ||= WebDriver::Navigation.new(bridge) end |
#page_source ⇒ String
Get the source of the current page
133 134 135 |
# File 'lib/selenium/webdriver/common/driver.rb', line 133 def page_source bridge.getPageSource end |
#quit ⇒ Object
Quit the browser
161 162 163 |
# File 'lib/selenium/webdriver/common/driver.rb', line 161 def quit bridge.quit end |
#ref ⇒ Object
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.
283 284 285 |
# File 'lib/selenium/webdriver/common/driver.rb', line 283 def ref nil end |
#switch_to ⇒ TargetLocator
86 87 88 |
# File 'lib/selenium/webdriver/common/driver.rb', line 86 def switch_to @switch_to ||= WebDriver::TargetLocator.new(bridge) end |
#title ⇒ String
Get the title of the current page
123 124 125 |
# File 'lib/selenium/webdriver/common/driver.rb', line 123 def title bridge.getTitle end |
#visible=(bool) ⇒ Object
Set the visibility of the browser. Not applicable for all browsers.
153 154 155 |
# File 'lib/selenium/webdriver/common/driver.rb', line 153 def visible=(bool) bridge.setBrowserVisible bool end |
#visible? ⇒ Boolean
Get the visibility of the browser. Not applicable for all browsers.
143 144 145 |
# File 'lib/selenium/webdriver/common/driver.rb', line 143 def visible? bridge.getBrowserVisible end |
#window_handle ⇒ String
Get the current window handle
190 191 192 |
# File 'lib/selenium/webdriver/common/driver.rb', line 190 def window_handle bridge.getCurrentWindowHandle end |
#window_handles ⇒ Array
Get the window handles of open browser windows.
180 181 182 |
# File 'lib/selenium/webdriver/common/driver.rb', line 180 def window_handles bridge.getWindowHandles end |