Class: Selenium::WebDriver::Driver
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Driver
- Includes:
- SearchContext
- Defined in:
- rb/lib/selenium/webdriver/common/driver.rb
Overview
The main class through which you control the browser.
Constant Summary
Constant Summary
Constants included from SearchContext
Class Method Summary (collapse)
Instance Method Summary (collapse)
-
- (WebDriver::Element) [](sel)
Get the first element matching the given selector.
- - (Object) browser
- - (Object) capabilities
-
- (Object) close
Close the current window, or the browser if no windows are left.
-
- (String) current_url
Get the URL of the current page.
-
- (WebDriver::Element, ...) execute_async_script(script, *args)
Execute an asynchronous piece of JavaScript in the context of the currently selected frame or window.
-
- (WebDriver::Element, ...) execute_script(script, *args)
(also: #script)
Execute the given JavaScript.
-
- (Object) get(url)
Opens the specified URL in the browser.
-
- (Driver) initialize(bridge)
constructor
private
A new Driver instance with the given bridge.
- - (Object) inspect
- - (Options) manage
- - (Navigation) navigate
-
- (String) page_source
Get the source of the current page.
-
- (Object) quit
Quit the browser.
- - (Object) ref private
- - (TargetLocator) switch_to
-
- (String) title
Get the title of the current page.
-
- (Object) visible=(bool)
Set the visibility of the browser.
-
- (Boolean) visible?
Get the visibility of the browser.
-
- (String) window_handle
Get the current window handle.
-
- (Array) window_handles
Get the window handles of open browser windows.
Methods included from SearchContext
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. End users should use Selenium::WebDriver.for instead of using this directly.
65 66 67 68 69 70 71 72 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 65 def initialize(bridge) @bridge = bridge # TODO: refactor this away unless bridge.driver_extensions.empty? extend(*bridge.driver_extensions) end end |
Class Method Details
+ (Driver) for(browser, opts = {})
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.
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 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 26 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) when :phantomjs PhantomJS::Bridge.new(opts) when :safari Safari::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
- (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.
Examples:
driver['someElementId'] #=> #<WebDriver::Element:0x1011c3b88>
driver[:tag_name => 'div'] #=> #<WebDriver::Element:0x1011c3b88>
268 269 270 271 272 273 274 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 268 def [](sel) if sel.kind_of?(String) || sel.kind_of?(Symbol) sel = { :id => sel } end find_element sel end |
- (Object) browser
276 277 278 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 276 def browser bridge.browser end |
- (Object) capabilities
280 281 282 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 280 def capabilities bridge.capabilities end |
- (Object) close
Close the current window, or the browser if no windows are left.
175 176 177 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 175 def close bridge.close end |
- (String) current_url
Get the URL of the current page
119 120 121 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 119 def current_url bridge.getCurrentUrl end |
- (WebDriver::Element, ...) execute_async_script(script, *args)
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.
231 232 233 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 231 def execute_async_script(script, *args) bridge.executeAsyncScript(script, *args) end |
- (WebDriver::Element, ...) execute_script(script, *args) Also known as: script
Execute the given JavaScript
212 213 214 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 212 def execute_script(script, *args) bridge.executeScript(script, *args) end |
- (Object) get(url)
Opens the specified URL in the browser.
109 110 111 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 109 def get(url) navigate.to(url) end |
- (Object) inspect
74 75 76 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 74 def inspect '#<%s:0x%x browser=%s>' % [self.class, hash*2, bridge.browser.inspect] end |
- (Options) manage
101 102 103 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 101 def manage @manage ||= WebDriver::Options.new(bridge) end |
- (Navigation) navigate
83 84 85 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 83 def navigate @navigate ||= WebDriver::Navigation.new(bridge) end |
- (String) page_source
Get the source of the current page
139 140 141 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 139 def page_source bridge.getPageSource end |
- (Object) quit
Quit the browser
167 168 169 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 167 def quit bridge.quit end |
- (Object) ref
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.
289 290 291 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 289 def ref nil end |
- (TargetLocator) switch_to
92 93 94 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 92 def switch_to @switch_to ||= WebDriver::TargetLocator.new(bridge) end |
- (String) title
Get the title of the current page
129 130 131 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 129 def title bridge.getTitle end |
- (Object) visible=(bool)
Set the visibility of the browser. Not applicable for all browsers.
159 160 161 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 159 def visible=(bool) bridge.setBrowserVisible bool end |
- (Boolean) visible?
Get the visibility of the browser. Not applicable for all browsers.
149 150 151 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 149 def visible? bridge.getBrowserVisible end |
- (String) window_handle
Get the current window handle
196 197 198 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 196 def window_handle bridge.getCurrentWindowHandle end |
- (Array) window_handles
Get the window handles of open browser windows.
186 187 188 |
# File 'rb/lib/selenium/webdriver/common/driver.rb', line 186 def window_handles bridge.getWindowHandles end |