### Home Classes Methods

### In Files

- lib/selenium/webdriver/common/driver.rb

### Parent

Object

### Methods

- ::for
- ::new
- #[]
- #browser
- #capabilities
- #close
- #current_url
- #execute_async_script
- #execute_script
- #get
- #inspect
- #manage
- #navigate
- #page_source
- #quit
- #ref
- #script
- #switch_to
- #title
- #visible=
- #visible?
- #window_handle
- #window_handles

### Included Modules

- Selenium::WebDriver::SearchContext

### Class/Module Index

Quicksearch

- Selenium
- Selenium::Client
- Selenium::Client::Base
- Selenium::Client::CommandError
- Selenium::Client::Driver
- Selenium::Client::Extensions
- Selenium::Client::GeneratedDriver
- Selenium::Client::Idiomatic
- Selenium::Client::JavascriptExpressionBuilder
- Selenium::Client::JavascriptFrameworks
- Selenium::Client::JavascriptFrameworks::JQuery
- Selenium::Client::JavascriptFrameworks::Prototype
- Selenium::Client::Protocol
- Selenium::Client::ProtocolError
- Selenium::Client::SeleniumHelper
- Selenium::Rake
- Selenium::Rake::MissingJarFileError
- Selenium::Rake::ServerTask
- Selenium::Server
- Selenium::Server::Error
- Selenium::WebDriver
- Selenium::WebDriver::ActionBuilder
- Selenium::WebDriver::Alert
- Selenium::WebDriver::Android
- Selenium::WebDriver::Android::Bridge
- Selenium::WebDriver::BridgeHelper
- Selenium::WebDriver::Chrome
- Selenium::WebDriver::Chrome::Bridge
- Selenium::WebDriver::Chrome::Profile
- Selenium::WebDriver::Chrome::Service
- Selenium::WebDriver::Driver
- Selenium::WebDriver::DriverExtensions
- Selenium::WebDriver::DriverExtensions::HasBrowserConnection
- Selenium::WebDriver::DriverExtensions::HasInputDevices
- Selenium::WebDriver::DriverExtensions::HasLocation
- Selenium::WebDriver::DriverExtensions::HasSessionId
- Selenium::WebDriver::DriverExtensions::HasTouchScreen
- Selenium::WebDriver::DriverExtensions::HasWebStorage
- Selenium::WebDriver::DriverExtensions::Rotatable
- Selenium::WebDriver::DriverExtensions::TakesScreenshot
- Selenium::WebDriver::DriverExtensions::UploadsFiles
- Selenium::WebDriver::Element
- Selenium::WebDriver::Error
- Selenium::WebDriver::Error::ElementNotDisplayedError
- Selenium::WebDriver::Error::ElementNotSelectableError
- Selenium::WebDriver::Error::ElementNotVisibleError
- Selenium::WebDriver::Error::ExpectedError
- Selenium::WebDriver::Error::IMEEngineActivationFailedError
- Selenium::WebDriver::Error::IMENotAvailableError
- Selenium::WebDriver::Error::IndexOutOfBoundsError
- Selenium::WebDriver::Error::InvalidCookieDomainError
- Selenium::WebDriver::Error::InvalidElementCoordinatesError
- Selenium::WebDriver::Error::InvalidElementStateError
- Selenium::WebDriver::Error::InvalidSelectorError
- Selenium::WebDriver::Error::JavascriptError
- Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
- Selenium::WebDriver::Error::NoAlertOpenError
- Selenium::WebDriver::Error::NoAlertPresentError
- Selenium::WebDriver::Error::NoCollectionError
- Selenium::WebDriver::Error::NoScriptResultError
- Selenium::WebDriver::Error::NoStringError
- Selenium::WebDriver::Error::NoStringLengthError
- Selenium::WebDriver::Error::NoStringWrapperError
- Selenium::WebDriver::Error::NoSuchCollectionError
- Selenium::WebDriver::Error::NoSuchDocumentError
- Selenium::WebDriver::Error::NoSuchDriverError
- Selenium::WebDriver::Error::NoSuchElementError
- Selenium::WebDriver::Error::NoSuchFrameError
- Selenium::WebDriver::Error::NoSuchWindowError
- Selenium::WebDriver::Error::NullPointerError
- Selenium::WebDriver::Error::ObsoleteElementError
- Selenium::WebDriver::Error::ScriptTimeOutError
- Selenium::WebDriver::Error::ServerError
- Selenium::WebDriver::Error::StaleElementReferenceError
- Selenium::WebDriver::Error::TimeOutError
- Selenium::WebDriver::Error::UnableToSetCookieError
- Selenium::WebDriver::Error::UnexpectedJavascriptError
- Selenium::WebDriver::Error::UnhandledAlertError
- Selenium::WebDriver::Error::UnhandledError
- Selenium::WebDriver::Error::UnknownCommandError
- Selenium::WebDriver::Error::UnknownError
- Selenium::WebDriver::Error::UnsupportedOperationError
- Selenium::WebDriver::Error::WebDriverError
- Selenium::WebDriver::Error::XPathLookupError
- Selenium::WebDriver::FileReaper
- Selenium::WebDriver::Firefox
- Selenium::WebDriver::Firefox::Binary
- Selenium::WebDriver::Firefox::Bridge
- Selenium::WebDriver::Firefox::Extension
- Selenium::WebDriver::Firefox::Launcher
- Selenium::WebDriver::Firefox::Profile
- Selenium::WebDriver::Firefox::ProfilesIni
- Selenium::WebDriver::Firefox::SocketLock
- Selenium::WebDriver::Firefox::Util
- Selenium::WebDriver::HTML5
- Selenium::WebDriver::HTML5::LocalStorage
- Selenium::WebDriver::HTML5::SessionStorage
- Selenium::WebDriver::HTML5::SharedWebStorage
- Selenium::WebDriver::IE
- Selenium::WebDriver::IE::Bridge
- Selenium::WebDriver::IE::Server
- Selenium::WebDriver::IPhone
- Selenium::WebDriver::IPhone::Bridge
- Selenium::WebDriver::JsonHelper
- Selenium::WebDriver::Keyboard
- Selenium::WebDriver::Keys
- Selenium::WebDriver::LogEntry
- Selenium::WebDriver::Mouse
- Selenium::WebDriver::Navigation
- Selenium::WebDriver::Opera
- Selenium::WebDriver::Opera::Bridge
- Selenium::WebDriver::Opera::Service
- Selenium::WebDriver::Options
- Selenium::WebDriver::PhantomJS
- Selenium::WebDriver::PhantomJS::Bridge
- Selenium::WebDriver::PhantomJS::Service
- Selenium::WebDriver::Platform
- Selenium::WebDriver::PortProber
- Selenium::WebDriver::ProfileHelper
- Selenium::WebDriver::ProfileHelper::ClassMethods
- Selenium::WebDriver::Proxy
- Selenium::WebDriver::Remote
- Selenium::WebDriver::Remote::Bridge
- Selenium::WebDriver::Remote::Capabilities
- Selenium::WebDriver::Remote::Http
- Selenium::WebDriver::Remote::Http::Common
- Selenium::WebDriver::Remote::Http::Curb
- Selenium::WebDriver::Remote::Http::Default
- Selenium::WebDriver::Remote::Http::Persistent
- Selenium::WebDriver::Remote::Response
- Selenium::WebDriver::Safari
- Selenium::WebDriver::Safari::Bridge
- Selenium::WebDriver::Safari::Browser
- Selenium::WebDriver::Safari::Extension
- Selenium::WebDriver::Safari::Server
- Selenium::WebDriver::SearchContext
- Selenium::WebDriver::SocketPoller
- Selenium::WebDriver::Support
- Selenium::WebDriver::Support::AbstractEventListener
- Selenium::WebDriver::Support::BlockEventListener
- Selenium::WebDriver::Support::Color
- Selenium::WebDriver::Support::EventFiringBridge
- Selenium::WebDriver::Support::Select
- Selenium::WebDriver::Support::Select::Escaper
- Selenium::WebDriver::TargetLocator
- Selenium::WebDriver::Timeouts
- Selenium::WebDriver::TouchActionBuilder
- Selenium::WebDriver::TouchScreen
- Selenium::WebDriver::Wait
- Selenium::WebDriver::Window
- Selenium::WebDriver::Zipper
- Base64
- Dir
- SocketError
- String

No matching classes.

# Selenium::WebDriver::Driver

The main class through which you control the browser.

@see SearchContext @see Navigation @see TargetLocator @see Options

### Public Class Methods

for(browser, opts = {}) click to toggle source

@api private

@see Selenium::WebDriver.for

@return [Driver]

    # File lib/selenium/webdriver/common/driver.rb, line 26
    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)
               when :phantomjs
                 PhantomJS::Bridge.new(opts)
               when :safari
                 Safari::Bridge.new(opts)
               else
                 raise ArgumentError, "unknown driver: #{browser.inspect}"
               end

      bridge = Support::EventFiringBridge.new(bridge, listener) if listener

      new(bridge)
    end

new(bridge) click to toggle source

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 65
    def initialize(bridge)
      @bridge = bridge

      # TODO: refactor this away
      unless bridge.driver_extensions.empty?
        extend(*bridge.driver_extensions)
      end
    end

### Public Instance Methods

[](sel) click to toggle source

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 268
    def [](sel)
      if sel.kind_of?(String) || sel.kind_of?(Symbol)
        sel = { :id => sel }
      end

      find_element sel
    end

browser() click to toggle source

    # File lib/selenium/webdriver/common/driver.rb, line 276
    def browser
      bridge.browser
    end

capabilities() click to toggle source

    # File lib/selenium/webdriver/common/driver.rb, line 280
    def capabilities
      bridge.capabilities
    end

close() click to toggle source

Close the current window, or the browser if no windows are left.

    # File lib/selenium/webdriver/common/driver.rb, line 175
    def close
      bridge.close
    end

current_url() click to toggle source

Get the URL of the current page

@return [String]

    # File lib/selenium/webdriver/common/driver.rb, line 119
    def current_url
      bridge.getCurrentUrl
    end

execute_async_script(script, *args) click to toggle source

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 231
    def execute_async_script(script, *args)
      bridge.executeAsyncScript(script, *args)
    end

execute_script(script, *args) click to toggle source

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 212
    def execute_script(script, *args)
      bridge.executeScript(script, *args)
    end

Also aliased as: script
get(url) click to toggle source

Opens the specified URL in the browser.

    # File lib/selenium/webdriver/common/driver.rb, line 109
    def get(url)
      navigate.to(url)
    end

inspect() click to toggle source

    # File lib/selenium/webdriver/common/driver.rb, line 74
    def inspect
      '#<%s:0x%x browser=%s>' % [self.class, hash*2, bridge.browser.inspect]
    end

manage() click to toggle source

@return [Options] @see Options

    # File lib/selenium/webdriver/common/driver.rb, line 101
    def manage
      @manage ||= WebDriver::Options.new(bridge)
    end

navigate() click to toggle source

@return [Navigation] @see Navigation

    # File lib/selenium/webdriver/common/driver.rb, line 83
    def navigate
      @navigate ||= WebDriver::Navigation.new(bridge)
    end

page_source() click to toggle source

Get the source of the current page

@return [String]

    # File lib/selenium/webdriver/common/driver.rb, line 139
    def page_source
      bridge.getPageSource
    end

quit() click to toggle source

Quit the browser

    # File lib/selenium/webdriver/common/driver.rb, line 167
    def quit
      bridge.quit
    end

ref() click to toggle source

@api private @see SearchContext

    # File lib/selenium/webdriver/common/driver.rb, line 289
    def ref
      nil
    end

script(script, *args) click to toggle source

driver.script('function() { ... };')

Alias for: execute_script
switch_to() click to toggle source

@return [TargetLocator] @see TargetLocator

    # File lib/selenium/webdriver/common/driver.rb, line 92
    def switch_to
      @switch_to ||= WebDriver::TargetLocator.new(bridge)
    end

title() click to toggle source

Get the title of the current page

@return [String]

    # File lib/selenium/webdriver/common/driver.rb, line 129
    def title
      bridge.getTitle
    end

visible=(bool) click to toggle source

Set the visibility of the browser. Not applicable for all browsers.

@param [Boolean]

    # File lib/selenium/webdriver/common/driver.rb, line 159
    def visible=(bool)
      bridge.setBrowserVisible bool
    end

visible?() click to toggle source

Get the visibility of the browser. Not applicable for all browsers.

@return [Boolean]

    # File lib/selenium/webdriver/common/driver.rb, line 149
    def visible?
      bridge.getBrowserVisible
    end

window_handle() click to toggle source

Get the current window handle

@return [String]

    # File lib/selenium/webdriver/common/driver.rb, line 196
    def window_handle
      bridge.getCurrentWindowHandle
    end

window_handles() click to toggle source

Get the window handles of open browser windows.

@return [Array] @see TargetLocator#window

    # File lib/selenium/webdriver/common/driver.rb, line 186
    def window_handles
      bridge.getWindowHandles
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.