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

Driver constructor and session management commands

Methods

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

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

[Source]

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

[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

[Source]

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

[Source]

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

[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

[Source]

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

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

[Source]

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

[Validate]