class Selenium::WebDriver::Driver
The main class through which you control the browser.
@see SearchContext @see Navigation @see TargetLocator @see Options
Attributes
Public Class Methods
@api private
@return [Driver]
# 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
A new Driver instance with the given bridge. End users should use Selenium::WebDriver.for instead of using this directly.
@api private
# 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
Public Instance Methods
Get the first element matching the given selector. If given a String or Symbol, it will be used as the id of the element.
@param [String,Hash] sel id or selector @return [WebDriver::Element]
Examples:
driver['someElementId'] #=> #<WebDriver::Element:0x1011c3b88> driver[:tag_name => 'div'] #=> #<WebDriver::Element:0x1011c3b88>
# 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
@return [ActionBuilder, W3CActionBuilder] @see ActionBuilder, W3CActionBuilder
# File lib/selenium/webdriver/common/driver.rb, line 111 def action bridge.action end
# File lib/selenium/webdriver/common/driver.rb, line 271 def browser bridge.browser end
# File lib/selenium/webdriver/common/driver.rb, line 275 def capabilities bridge.capabilities end
Close the current window, or the browser if no windows are left.
# File lib/selenium/webdriver/common/driver.rb, line 173 def close bridge.close end
Get the URL of the current page
@return [String]
# File lib/selenium/webdriver/common/driver.rb, line 137 def current_url bridge.url end
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.
@param [String] script
JavaScript source to execute
@param [WebDriver::Element,Integer, Float, Boolean, NilClass, String, Array] args
Arguments to the script. May be empty.
@return [WebDriver::Element,Integer,Float,Boolean,NilClass,String,Array]
# File lib/selenium/webdriver/common/driver.rb, line 229 def execute_async_script(script, *args) bridge.execute_async_script(script, *args) end
Execute the given JavaScript
@param [String] script
JavaScript source to execute
@param [WebDriver::Element, Integer, Float, Boolean, NilClass, String, Array] args
Arguments will be available in the given script in the 'arguments' pseudo-array.
@return [WebDriver::Element,Integer,Float,Boolean,NilClass,String,Array]
The value returned from the script.
# File lib/selenium/webdriver/common/driver.rb, line 210 def execute_script(script, *args) bridge.execute_script(script, *args) end
Opens the specified URL in the browser.
# File lib/selenium/webdriver/common/driver.rb, line 127 def get(url) navigate.to(url) end
# 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
# File lib/selenium/webdriver/common/driver.rb, line 119 def keyboard bridge.keyboard end
@return [Options] @see Options
# File lib/selenium/webdriver/common/driver.rb, line 102 def manage bridge.options end
# File lib/selenium/webdriver/common/driver.rb, line 115 def mouse bridge.mouse end
Get the source of the current page
@return [String]
# File lib/selenium/webdriver/common/driver.rb, line 157 def page_source bridge.page_source end
Quit the browser
# File lib/selenium/webdriver/common/driver.rb, line 165 def quit bridge.quit end
@api private @see SearchContext
# File lib/selenium/webdriver/common/driver.rb, line 284 def ref nil end
@return [TargetLocator] @see TargetLocator
# File lib/selenium/webdriver/common/driver.rb, line 93 def switch_to @switch_to ||= WebDriver::TargetLocator.new(bridge) end
Get the title of the current page
@return [String]
# File lib/selenium/webdriver/common/driver.rb, line 147 def title bridge.title end
Get the current window handle
@return [String]
# File lib/selenium/webdriver/common/driver.rb, line 194 def window_handle bridge.window_handle end
Get the window handles of open browser windows.
@return [Array] @see TargetLocator#window
# File lib/selenium/webdriver/common/driver.rb, line 184 def window_handles bridge.window_handles end