class Selenium::WebDriver::IE::Server

Constants

STOP_TIMEOUT

Attributes

log_file[RW]
log_level[RW]

Public Class Methods

get(opts = {}) click to toggle source
# File lib/selenium/webdriver/ie/server.rb, line 8
def self.get(opts = {})
  binary = IE.driver_path || Platform.find_binary("IEDriverServer")

  if binary
    new binary, opts
  else
    raise Error::WebDriverError,
      "Unable to find standalone executable. Please download the IEDriverServer from http://selenium-release.storage.googleapis.com/index.html and place the executable on your PATH."
  end
end
new(binary_path, opts = {}) click to toggle source
# File lib/selenium/webdriver/ie/server.rb, line 21
def initialize(binary_path, opts = {})
  Platform.assert_executable binary_path

  @binary_path = binary_path
  @process = nil

  opts = opts.dup

  @log_level      = opts.delete(:log_level)
  @log_file       = opts.delete(:log_file)
  @implementation = opts.delete(:implementation)

  unless opts.empty?
    raise ArgumentError, "invalid option#{'s' if opts.size != 1}: #{opts.inspect}"
  end

end

Public Instance Methods

port() click to toggle source
# File lib/selenium/webdriver/ie/server.rb, line 63
def port
  @port
end
running?() click to toggle source
# File lib/selenium/webdriver/ie/server.rb, line 71
def running?
  @process && @process.alive?
end
start(port, timeout) click to toggle source
# File lib/selenium/webdriver/ie/server.rb, line 39
def start(port, timeout)
  return @port if running?

  @port = port

  @process = ChildProcess.new(@binary_path, *server_args)
  @process.io.inherit! if $DEBUG
  @process.start

  unless SocketPoller.new(Platform.localhost, @port, timeout).connected?
    raise Error::WebDriverError, "unable to connect to IE server within #{timeout} seconds"
  end

  Platform.exit_hook { stop }

  @port
end
stop() click to toggle source
# File lib/selenium/webdriver/ie/server.rb, line 57
def stop
  if running?
    @process.stop STOP_TIMEOUT
  end
end
uri() click to toggle source
# File lib/selenium/webdriver/ie/server.rb, line 67
def uri
  "http://#{Platform.localhost}:#{port}"
end

Private Instance Methods

server_args() click to toggle source
# File lib/selenium/webdriver/ie/server.rb, line 77
def server_args
  args = ["--port=#{@port}"]

  args << "--log-level=#{@log_level.to_s.upcase}" if @log_level
  args << "--log-file=#{@log_file}" if @log_file
  args << "--implementation=#{@implementation.to_s.upcase}" if @implementation

  args
end