Class: Selenium::SeleniumServer

Inherits:
Object
  • Object
show all
Defined in:
lib/selenium/selenium_server.rb

Overview

Selenium server driver that provides API to start/stop server and check if server is running. NOTE: The start does not return until the server shuts down.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(port_number = 4444) ⇒ SeleniumServer

Initialize the server driver with an opitonal port number (default to 4444)



25
26
27
# File 'lib/selenium/selenium_server.rb', line 25

def initialize(port_number = 4444)
  @port_number = port_number
end

Instance Attribute Details

#port_numberObject (readonly)

Returns the value of attribute port_number.



22
23
24
# File 'lib/selenium/selenium_server.rb', line 22

def port_number
  @port_number
end

Class Method Details

.run(argv) ⇒ Object



9
10
11
12
13
14
# File 'lib/selenium/selenium_server.rb', line 9

def SeleniumServer::run(argv)
  jar_file = SeleniumServer.jar_file
  command = "java -jar #{jar_file} #{argv.join(' ')}"
  puts command
  system(command)
end

Instance Method Details

#running?Boolean

Check if the Selenium is running by sending a test_complete command with invalid session ID

Returns:

  • (Boolean)


40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/selenium/selenium_server.rb', line 40

def running?
  url = URI.parse("http://localhost:#{@port_number}/selenium-server/driver/?cmd=testComplete&sessionId=smoketest")
  request = Net::HTTP::Get.new(url.path)
  begin
    res = Net::HTTP.start(url.host, url.port) {|http|
      http.read_timeout=5
      http.request(request)
    }
    puts "response: #{res}"
  rescue Errno::EBADF => e
    return false
  end 
  return true      
end

#startObject

Starts the Selenium server. This does not return until the server is shutdown.



30
31
32
# File 'lib/selenium/selenium_server.rb', line 30

def start
  SeleniumServer.run(['-port', port_number.to_s])
end

#stopObject

Stops the Selenium server



35
36
37
# File 'lib/selenium/selenium_server.rb', line 35

def stop
  Net::HTTP.get('localhost', '/selenium-server/driver/?cmd=shutDown', @port_number)
end