Module | Selenium::Client::Base
In: | lib/selenium/client/base.rb

Driver constructor and session management commands

### Methods

chrome_backend? close_current_browser_session javascript_extension= new 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

### Attributes

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

### Public Class methods

new(*args)

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

[Source]

        # File lib/selenium/client/base.rb, line 37
    37:       def initialize(*args)
    38:         if args[0].kind_of?(Hash)
    39:           options = args[0]
    40:           @host = options[:host]
    41:           @port = options[:port].to_i
    42:           @browser_string = options[:browser]
    43:           @browser_url = options[:url]
    44:           @default_timeout_in_seconds = (options[:timeout_in_seconds] || 300).to_i
    45:           @default_javascript_framework = options[:javascript_framework] || :prototype
    46:         else
    47:           @host = args[0]
    48:           @port = args[1].to_i
    49:           @browser_string = args[2]
    50:           @browser_url = args[3]
    51:           @default_timeout_in_seconds = (args[4] || 300).to_i
    52:           @default_javascript_framework = :prototype
    53:         end
    54:
    55:         @extension_js = ""
    56:         @session_id = nil
    57:       end

### Public Instance methods

chrome_backend?()

[Source]

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

close_current_browser_session()

[Source]

        # File lib/selenium/client/base.rb, line 79
    79:       def close_current_browser_session
    80:         remote_control_command "testComplete" if @session_id
    81:         @session_id = nil
    82:       end

javascript_extension=(new_javascript_extension)

[Source]

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

session_started?()

[Source]

        # File lib/selenium/client/base.rb, line 59
    59:       def session_started?
    60:         not @session_id.nil?
    61:       end

set_extension_js(new_javascript_extension)

[Source]

         # File lib/selenium/client/base.rb, line 100
    100:       def set_extension_js(new_javascript_extension)
    101:               javascript_extension = new_javascript_extension
    102:       end

start()

[Source]

        # File lib/selenium/client/base.rb, line 84
    84:       def start
    85:         start_new_browser_session
    86:       end

start_new_browser_session(options={})

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)

[Source]

        # File lib/selenium/client/base.rb, line 70
    70:       def start_new_browser_session(options={})
    71:         options_as_string = options.collect {|key,value| "#{key.to_s}=#{value.to_s}"}.sort.join(";")
    72:         result = string_command "getNewBrowserSession", [@browser_string, @browser_url, @extension_js, options_as_string]
    73:         @session_id = result
    74:         # Consistent timeout on the remote control and driver side.
    75:         # Intuitive and this is what you want 90% of the time
    76:         self.remote_control_timeout_in_seconds = @default_timeout_in_seconds
    77:       end

stop()

[Source]

        # File lib/selenium/client/base.rb, line 88
    88:       def stop
    89:               close_current_browser_session
    90:       end

[Validate]