Sha256: 3a16631d66691375e37d43a27e4d8ba377ddbfa451ecb94d3a792eeacfbdb463

Contents?: true

Size: 1.49 KB

Versions: 3

Compression:

Stored size: 1.49 KB

Contents

require 'net/http'

module Selenium

# 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.
class SeleniumServer
  def SeleniumServer::run(argv)
    jar_file = SeleniumServer.jar_file
    command = "java -jar #{jar_file} #{argv.join(' ')}"
    puts command
    system(command)
  end
  
  private
  def SeleniumServer::jar_file
    File.join(File.dirname(__FILE__), 'openqa', 'selenium-server.jar.txt')
  end
  
  public
  attr_reader :port_number

  # Initialize the server driver with an opitonal port number (default to 4444)
  def initialize(port_number = 4444)
    @port_number = port_number
  end
  
  # Starts the Selenium server.  This does not return until the server is shutdown.
  def start
    SeleniumServer.run(['-port', port_number.to_s])
  end
  
  # Stops the Selenium server
  def stop
    Net::HTTP.get('localhost', '/selenium-server/driver/?cmd=shutDown', @port_number)
  end
  
  # Check if the Selenium is running by sending a test_complete command with invalid session ID
  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
end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
Selenium-1.0.2 lib/selenium/selenium_server.rb
Selenium-1.0.0 lib/selenium/selenium_server.rb
Selenium-1.0.1 lib/selenium/selenium_server.rb