Object
The main class through which you control the browser.
@see SearchContext @see Navigation @see TargetLocator @see Options
@api private
# File lib/selenium/webdriver/common/driver.rb, line 24 def for(browser, opts = {}) listener = opts.delete(:listener) bridge = case browser when :firefox, :ff Firefox::Bridge.new(opts) when :remote Remote::Bridge.new(opts) when :ie, :internet_explorer IE::Bridge.new(opts) when :chrome Chrome::Bridge.new(opts) when :android Android::Bridge.new(opts) when :iphone IPhone::Bridge.new(opts) when :opera Opera::Bridge.new(opts) else raise ArgumentError, "unknown driver: #{browser.inspect}" end bridge = Support::EventFiringBridge.new(bridge, listener) if listener new(bridge) 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 59 def initialize(bridge) @bridge = bridge # TODO: refactor this away unless bridge.driver_extensions.empty? extend(*bridge.driver_extensions) end end
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] 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 262 def [](sel) if sel.kind_of?(String) || sel.kind_of?(Symbol) sel = { :id => sel } end find_element sel end
# File lib/selenium/webdriver/common/driver.rb, line 270 def browser bridge.browser end
# File lib/selenium/webdriver/common/driver.rb, line 274 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 169 def close bridge.close end
Get the URL of the current page
@return [String]
# File lib/selenium/webdriver/common/driver.rb, line 113 def current_url bridge.getCurrentUrl 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 225 def execute_async_script(script, *args) bridge.executeAsyncScript(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 206 def execute_script(script, *args) bridge.executeScript(script, *args) end
Opens the specified URL in the browser.
# File lib/selenium/webdriver/common/driver.rb, line 103 def get(url) navigate.to(url) end
# File lib/selenium/webdriver/common/driver.rb, line 68 def inspect '#<%s:0x%x browser=%s>' % [self.class, hash*2, bridge.browser.inspect] end
@return [Options] @see Options
# File lib/selenium/webdriver/common/driver.rb, line 95 def manage @manage ||= WebDriver::Options.new(bridge) end
Get the source of the current page
@return [String]
# File lib/selenium/webdriver/common/driver.rb, line 133 def page_source bridge.getPageSource end
Quit the browser
# File lib/selenium/webdriver/common/driver.rb, line 161 def quit bridge.quit end
@api private @see SearchContext
# File lib/selenium/webdriver/common/driver.rb, line 283 def ref nil end
driver.script('function() { ... };')
@return [TargetLocator] @see TargetLocator
# File lib/selenium/webdriver/common/driver.rb, line 86 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 123 def title bridge.getTitle end
Set the visibility of the browser. Not applicable for all browsers.
@param [Boolean]
# File lib/selenium/webdriver/common/driver.rb, line 153 def visible=(bool) bridge.setBrowserVisible bool end
Get the visibility of the browser. Not applicable for all browsers.
@return [Boolean]
# File lib/selenium/webdriver/common/driver.rb, line 143 def visible? bridge.getBrowserVisible end
Get the current window handle
@return [String]
# File lib/selenium/webdriver/common/driver.rb, line 190 def window_handle bridge.getCurrentWindowHandle end
Get the window handles of open browser windows.
@return [Array] @see TargetLocator#window
# File lib/selenium/webdriver/common/driver.rb, line 180 def window_handles bridge.getWindowHandles end
Generated with the Darkfish Rdoc Generator 2.