Class: Selenium::WebDriver::Driver
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Driver
- Includes:
- Find
- Defined in:
- lib/selenium/webdriver/common/driver.rb
Overview
The main class through which you control the browser.
Constant Summary
Constants included from Find
Class Method Summary collapse
-
.for(browser, *args) ⇒ Driver
Create a new Driver instance with the correct bridge for the given browser.
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_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
for Find.
- #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 Find
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
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, *args) ⇒ Driver
Create a new Driver instance with the correct bridge for the given browser
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/selenium/webdriver/common/driver.rb', line 35 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
#[](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.
240 241 242 243 244 245 246 |
# File 'lib/selenium/webdriver/common/driver.rb', line 240 def [](sel) if sel.kind_of?(String) || sel.kind_of?(Symbol) sel = { :id => sel } end find_element sel end |
#browser ⇒ Object
259 260 261 |
# File 'lib/selenium/webdriver/common/driver.rb', line 259 def browser bridge.browser end |
#capabilities ⇒ Object
263 264 265 |
# File 'lib/selenium/webdriver/common/driver.rb', line 263 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_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
for Find
255 256 257 |
# File 'lib/selenium/webdriver/common/driver.rb', line 255 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 |