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.
Direct Known Subclasses
Chrome::Driver, Edge::Driver, Firefox::Legacy::Driver, Firefox::Marionette::Driver, IE::Driver, Remote::Driver, Safari::Driver
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.
- #action ⇒ ActionBuilder, W3CActionBuilder
- #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, listener: nil) ⇒ Driver
constructor
private
A new Driver instance with the given bridge.
- #inspect ⇒ Object
- #keyboard ⇒ Object
- #manage ⇒ Options
- #mouse ⇒ Object
- #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.
-
#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, listener: nil) ⇒ 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.
70 71 72 73 |
# File 'lib/selenium/webdriver/common/driver.rb', line 70 def initialize(bridge, listener: nil) @bridge = bridge @bridge = Support::EventFiringBridge.new(bridge, listener) if listener end |
Class Method Details
.for(browser, opts = {}) ⇒ 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.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/selenium/webdriver/common/driver.rb', line 41 def for(browser, opts = {}) case browser when :chrome Chrome::Driver.new(opts) when :internet_explorer, :ie IE::Driver.new(opts) when :safari Safari::Driver.new(opts) when :phantomjs PhantomJS::Driver.new(opts) when :firefox, :ff Firefox::Driver.new(opts) when :edge Edge::Driver.new(opts) when :remote Remote::Driver.new(opts) else raise ArgumentError, "unknown driver: #{browser.inspect}" end 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>
265 266 267 268 269 |
# File 'lib/selenium/webdriver/common/driver.rb', line 265 def [](sel) sel = {id: sel} if sel.is_a?(String) || sel.is_a?(Symbol) find_element sel end |
#action ⇒ ActionBuilder, W3CActionBuilder
111 112 113 |
# File 'lib/selenium/webdriver/common/driver.rb', line 111 def action bridge.action end |
#browser ⇒ Object
271 272 273 |
# File 'lib/selenium/webdriver/common/driver.rb', line 271 def browser bridge.browser end |
#capabilities ⇒ Object
275 276 277 |
# File 'lib/selenium/webdriver/common/driver.rb', line 275 def capabilities bridge.capabilities end |
#close ⇒ Object
Close the current window, or the browser if no windows are left.
173 174 175 |
# File 'lib/selenium/webdriver/common/driver.rb', line 173 def close bridge.close end |
#current_url ⇒ String
Get the URL of the current page
137 138 139 |
# File 'lib/selenium/webdriver/common/driver.rb', line 137 def current_url bridge.url 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.
229 230 231 |
# File 'lib/selenium/webdriver/common/driver.rb', line 229 def execute_async_script(script, *args) bridge.execute_async_script(script, *args) end |
#execute_script(script, *args) ⇒ WebDriver::Element, ... Also known as: script
Execute the given JavaScript
210 211 212 |
# File 'lib/selenium/webdriver/common/driver.rb', line 210 def execute_script(script, *args) bridge.execute_script(script, *args) end |
#get(url) ⇒ Object
Opens the specified URL in the browser.
127 128 129 |
# File 'lib/selenium/webdriver/common/driver.rb', line 127 def get(url) navigate.to(url) end |
#inspect ⇒ Object
75 76 77 |
# File 'lib/selenium/webdriver/common/driver.rb', line 75 def inspect format '#<%s:0x%x browser=%s>', self.class, hash * 2, bridge.browser.inspect end |
#keyboard ⇒ Object
119 120 121 |
# File 'lib/selenium/webdriver/common/driver.rb', line 119 def keyboard bridge.keyboard end |
#manage ⇒ Options
102 103 104 |
# File 'lib/selenium/webdriver/common/driver.rb', line 102 def manage bridge. end |
#mouse ⇒ Object
115 116 117 |
# File 'lib/selenium/webdriver/common/driver.rb', line 115 def mouse bridge.mouse end |
#navigate ⇒ Navigation
84 85 86 |
# File 'lib/selenium/webdriver/common/driver.rb', line 84 def navigate @navigate ||= WebDriver::Navigation.new(bridge) end |
#page_source ⇒ String
Get the source of the current page
157 158 159 |
# File 'lib/selenium/webdriver/common/driver.rb', line 157 def page_source bridge.page_source end |
#quit ⇒ Object
Quit the browser
165 166 167 |
# File 'lib/selenium/webdriver/common/driver.rb', line 165 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.
284 285 286 |
# File 'lib/selenium/webdriver/common/driver.rb', line 284 def ref nil end |
#switch_to ⇒ TargetLocator
93 94 95 |
# File 'lib/selenium/webdriver/common/driver.rb', line 93 def switch_to @switch_to ||= WebDriver::TargetLocator.new(bridge) end |
#title ⇒ String
Get the title of the current page
147 148 149 |
# File 'lib/selenium/webdriver/common/driver.rb', line 147 def title bridge.title end |
#window_handle ⇒ String
Get the current window handle
194 195 196 |
# File 'lib/selenium/webdriver/common/driver.rb', line 194 def window_handle bridge.window_handle end |
#window_handles ⇒ Array
Get the window handles of open browser windows.
184 185 186 |
# File 'lib/selenium/webdriver/common/driver.rb', line 184 def window_handles bridge.window_handles end |