### Home Classes Methods

### In Files

- lib/selenium/client/base.rb

### Methods

- ::new
- #chrome_backend?
- #close_current_browser_session
- #javascript_extension=
- #session_started?
- #set_extension_js
- #start
- #start_new_browser_session
- #stop

### Included Modules

- Selenium::Client::Protocol
- Selenium::Client::GeneratedDriver
- Selenium::Client::Extensions
- Selenium::Client::Idiomatic

### 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::Client::Base

Driver constructor and session management commands

### Attributes

browser_string[R]
browser_url[R]
default_javascript_framework[R]
default_timeout_in_seconds[R]
highlight_located_element_by_default[R]
host[R]
port[R]

### Public Class Methods

new(*args) click to toggle source

Create a new client driver

Example:

Selenium::Client::Driver.new \

    :host => "localhost",
    :port => 4444,
    :browser => "*firefox",
    :timeout_in_seconds => 10,
    :url => "http://localhost:3000",

You can also set the default javascript framework used for :wait_for AJAX and effects semantics (:prototype is the default value):

Selenium::Client::Driver.new \

    :host => "localhost",
    :port => 4444,
    :browser => "*firefox",
    :timeout_in_seconds => 10,
    :url => "http://localhost:3000",
    :javascript_framework => :jquery

You can also enables automatic highlighting of located elements by passing the highlight_located_element option, e.g.

Selenium::Client::Driver.new \

    :host => "localhost",
    :port => 4444,
    :browser => "*firefox",
    :highlight_located_element => true

    # File lib/selenium/client/base.rb, line 48
    def initialize(*args)
      if args[0].kind_of?(Hash)
        options = args[0]
        @host = options[:host]
        @port = options[:port].to_i
        @browser_string = options[:browser]
        @browser_url = options[:url]
        @default_timeout_in_seconds = (options[:timeout_in_seconds] || 300).to_i
        @default_javascript_framework = options[:javascript_framework] || :prototype
        @highlight_located_element_by_default = options[:highlight_located_element] || false
      else
        @host = args[0]
        @port = args[1].to_i
        @browser_string = args[2]
        @browser_url = args[3]
        @default_timeout_in_seconds = (args[4] || 300).to_i
        @default_javascript_framework = :prototype
        @highlight_located_element_by_default = false
      end

      @extension_js = ""
      @session_id = nil
    end

### Public Instance Methods

chrome_backend?() click to toggle source

    # File lib/selenium/client/base.rb, line 120
    def chrome_backend?
      ["*chrome", "*firefox", "*firefox2", "*firefox3"].include?(@browser_string)
    end

close_current_browser_session() click to toggle source

    # File lib/selenium/client/base.rb, line 107
    def close_current_browser_session
      remote_control_command "testComplete" if @session_id
      @session_id = nil
    end

javascript_extension=(new_javascript_extension) click to toggle source

    # File lib/selenium/client/base.rb, line 124
    def javascript_extension=(new_javascript_extension)
      @extension_js = new_javascript_extension
    end

Also aliased as: set_extension_js
session_started?() click to toggle source

    # File lib/selenium/client/base.rb, line 72
    def session_started?
      not @session_id.nil?
    end

set_extension_js(new_javascript_extension) click to toggle source
Alias for: javascript_extension=
start(opts = {}) click to toggle source

    # File lib/selenium/client/base.rb, line 112
    def start(opts = {})
      start_new_browser_session opts
    end

start_new_browser_session(options={}) click to toggle source

Starts a new browser session (launching a new browser matching configuration provided at driver creation time).

Browser session specific option can also be provided. e.g.

    driver.start_new_browser_session(:captureNetworkTraffic => true)

    # File lib/selenium/client/base.rb, line 83
    def start_new_browser_session(options={})
      start_args = [@browser_string, @browser_url, @extension_js]

      if driver = options.delete(:driver)
        expected_browser_string = "*webdriver"
        unless @browser_string == expected_browser_string
          raise ArgumentError, "can't use :driver unless the browser string is #{expected_browser_string.inspect} (got #{@browser_string.inspect})"
        end

        sid = driver.capabilities['webdriver.remote.sessionid']
        sid or raise ArgumentError, "This driver can not be wrapped in the RC API."

        start_args << "webdriver.remote.sessionid=#{sid}"
      end

      start_args << options.collect {|key,value| "#{key.to_s}=#{value.to_s}"}.sort.join(";")

      @session_id = string_command "getNewBrowserSession", start_args
      # Consistent timeout on the remote control and driver side.
      # Intuitive and this is what you want 90% of the time
      self.remote_control_timeout_in_seconds = @default_timeout_in_seconds
      self.highlight_located_element = true if highlight_located_element_by_default
    end

stop() click to toggle source

    # File lib/selenium/client/base.rb, line 116
    def stop
            close_current_browser_session
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.