Class: Selenium::WebDriver::Driver
- Inherits:
-
Object
- Object
- Selenium::WebDriver::Driver
- Includes:
- Find
- Defined in:
- lib/selenium/webdriver/driver.rb
Overview
The main class through which you control the browser.
Constant Summary
Constants included from Find
Instance Attribute Summary collapse
-
#bridge ⇒ Object
readonly
Returns the value of attribute bridge.
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.
-
#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
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
#bridge ⇒ Object (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
.for(browser, *args) ⇒ Driver
Create a new Driver instance with the correct bridge for the given browser
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
#[](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.
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 |
#close ⇒ Object
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 |
#current_url ⇒ String
Get the URL of the current page
115 116 117 |
# File 'lib/selenium/webdriver/driver.rb', line 115 def current_url bridge.getCurrentUrl end |
#execute_script(script, *args) ⇒ WebDriver::Element, ... Also known as: script
Execute the given JavaScript
208 209 210 |
# File 'lib/selenium/webdriver/driver.rb', line 208 def execute_script(script, *args) bridge.executeScript(script, *args) end |
#get(url) ⇒ Object
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 |
#inspect ⇒ Object
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 |
#manage ⇒ Options
97 98 99 |
# File 'lib/selenium/webdriver/driver.rb', line 97 def manage @manage ||= WebDriver::Options.new(self) end |
#navigate ⇒ Navigation
79 80 81 |
# File 'lib/selenium/webdriver/driver.rb', line 79 def navigate @navigate ||= WebDriver::Navigation.new(self) end |
#page_source ⇒ String
Get the source of the current page
135 136 137 |
# File 'lib/selenium/webdriver/driver.rb', line 135 def page_source bridge.getPageSource end |
#quit ⇒ Object
Quit the browser
163 164 165 |
# File 'lib/selenium/webdriver/driver.rb', line 163 def quit bridge.quit end |
#ref ⇒ Object
for Find
257 258 259 |
# File 'lib/selenium/webdriver/driver.rb', line 257 def ref nil end |
#switch_to ⇒ TargetLocator
88 89 90 |
# File 'lib/selenium/webdriver/driver.rb', line 88 def switch_to @switch_to ||= WebDriver::TargetLocator.new(self) end |
#title ⇒ String
Get the title of the current page
125 126 127 |
# File 'lib/selenium/webdriver/driver.rb', line 125 def title bridge.getTitle end |
#visible=(bool) ⇒ Object
Set the visibility of the browser. Not applicable for all browsers.
155 156 157 |
# File 'lib/selenium/webdriver/driver.rb', line 155 def visible=(bool) bridge.setBrowserVisible bool end |
#visible? ⇒ Boolean
Get the visibility of the browser. Not applicable for all browsers.
145 146 147 |
# File 'lib/selenium/webdriver/driver.rb', line 145 def visible? bridge.getBrowserVisible end |
#window_handle ⇒ String
Get the current window handle
192 193 194 |
# File 'lib/selenium/webdriver/driver.rb', line 192 def window_handle bridge.getCurrentWindowHandle end |
#window_handles ⇒ Array
Get the window handles of open browser windows.
182 183 184 |
# File 'lib/selenium/webdriver/driver.rb', line 182 def window_handles bridge.getWindowHandles end |