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) ⇒ Object private
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
private
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. End users should use Selenium::WebDriver.for instead of using this directly.
53 54 55 56 57 58 59 60 |
# File 'lib/selenium/webdriver/common/driver.rb', line 53 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) ⇒ 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 |
# File 'lib/selenium/webdriver/common/driver.rb', line 24 def for(browser, *args) bridge = case browser when :firefox, :ff Firefox::Bridge.new(*args) when :remote Remote::Bridge.new(*args) when :ie, :internet_explorer IE::Bridge.new(*args) when :chrome Chrome::Bridge.new(*args) when :android Android::Bridge.new(*args) when :iphone IPhone::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.
Examples:
driver['someElementId'] #=> #<WebDriver::Element:0x1011c3b88>
driver[:tag_name => 'div'] #=> #<WebDriver::Element:0x1011c3b88>
236 237 238 239 240 241 242 |
# File 'lib/selenium/webdriver/common/driver.rb', line 236 def [](sel) if sel.kind_of?(String) || sel.kind_of?(Symbol) sel = { :id => sel } end find_element sel end |
#browser ⇒ Object
255 256 257 |
# File 'lib/selenium/webdriver/common/driver.rb', line 255 def browser bridge.browser end |
#capabilities ⇒ Object
259 260 261 |
# File 'lib/selenium/webdriver/common/driver.rb', line 259 def capabilities bridge.capabilities end |
#close ⇒ Object
Close the current window, or the browser if no windows are left.
163 164 165 |
# File 'lib/selenium/webdriver/common/driver.rb', line 163 def close bridge.close end |
#current_url ⇒ String
Get the URL of the current page
107 108 109 |
# File 'lib/selenium/webdriver/common/driver.rb', line 107 def current_url bridge.getCurrentUrl end |
#execute_script(script, *args) ⇒ WebDriver::Element, ... Also known as: script
Execute the given JavaScript
200 201 202 |
# File 'lib/selenium/webdriver/common/driver.rb', line 200 def execute_script(script, *args) bridge.executeScript(script, *args) end |
#get(url) ⇒ Object
Opens the specified URL in the browser.
97 98 99 |
# File 'lib/selenium/webdriver/common/driver.rb', line 97 def get(url) navigate.to(url) end |
#inspect ⇒ Object
62 63 64 |
# File 'lib/selenium/webdriver/common/driver.rb', line 62 def inspect '#<%s:0x%x browser=%s>' % [self.class, hash*2, bridge.browser.inspect] end |
#manage ⇒ Options
89 90 91 |
# File 'lib/selenium/webdriver/common/driver.rb', line 89 def manage @manage ||= WebDriver::Options.new(bridge) end |
#navigate ⇒ Navigation
71 72 73 |
# File 'lib/selenium/webdriver/common/driver.rb', line 71 def navigate @navigate ||= WebDriver::Navigation.new(bridge) end |
#page_source ⇒ String
Get the source of the current page
127 128 129 |
# File 'lib/selenium/webdriver/common/driver.rb', line 127 def page_source bridge.getPageSource end |
#quit ⇒ Object
Quit the browser
155 156 157 |
# File 'lib/selenium/webdriver/common/driver.rb', line 155 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.
for Find
251 252 253 |
# File 'lib/selenium/webdriver/common/driver.rb', line 251 def ref nil end |
#switch_to ⇒ TargetLocator
80 81 82 |
# File 'lib/selenium/webdriver/common/driver.rb', line 80 def switch_to @switch_to ||= WebDriver::TargetLocator.new(bridge) end |
#title ⇒ String
Get the title of the current page
117 118 119 |
# File 'lib/selenium/webdriver/common/driver.rb', line 117 def title bridge.getTitle end |
#visible=(bool) ⇒ Object
Set the visibility of the browser. Not applicable for all browsers.
147 148 149 |
# File 'lib/selenium/webdriver/common/driver.rb', line 147 def visible=(bool) bridge.setBrowserVisible bool end |
#visible? ⇒ Boolean
Get the visibility of the browser. Not applicable for all browsers.
137 138 139 |
# File 'lib/selenium/webdriver/common/driver.rb', line 137 def visible? bridge.getBrowserVisible end |
#window_handle ⇒ String
Get the current window handle
184 185 186 |
# File 'lib/selenium/webdriver/common/driver.rb', line 184 def window_handle bridge.getCurrentWindowHandle end |
#window_handles ⇒ Array
Get the window handles of open browser windows.
174 175 176 |
# File 'lib/selenium/webdriver/common/driver.rb', line 174 def window_handles bridge.getWindowHandles end |