Wraps the remote server jar
Usage:
server = Selenium::Server.new('/path/to/selenium-server-standalone.jar') server.start
Automatically download the given version:
server = Selenium::Server.get '2.6.0' server.start
or the latest version:
server = Selenium::Server.get :latest server.start
Run the server in the background:
server = Selenium::Server.new(jar, :background => true) server.start
Add additional arguments:
server = Selenium::Server.new(jar) server << ["--additional", "args"] server.start
Download the given version of the selenium-server-standalone jar.
# File lib/selenium/server.rb, line 50 def self.download(required_version) required_version = latest if required_version == :latest download_file_name = "selenium-server-standalone-#{required_version}.jar" if File.exists? download_file_name return download_file_name end begin open(download_file_name, "wb") do |destination| net_http.start("selenium.googlecode.com") do |http| resp = http.request_get("/files/#{download_file_name}") do |response| total = response.content_length progress = 0 segment_count = 0 response.read_body do |segment| progress += segment.length segment_count += 1 if segment_count % 15 == 0 percent = (progress.to_f / total.to_f) * 100 print "#{CL_RESET}Downloading #{download_file_name}: #{percent.to_i}% (#{progress} / #{total})" segment_count = 0 end destination.write(segment) end end unless resp.kind_of? Net::HTTPSuccess raise Error, "#{resp.code} for #{download_file_name}" end end end rescue FileUtils.rm download_file_name if File.exists? download_file_name raise end download_file_name end
# File lib/selenium/server.rb, line 42 def self.get(required_version, opts = {}) new(download(required_version), opts) end
Ask Google Code what the latest selenium-server-standalone version is.
# File lib/selenium/server.rb, line 97 def self.latest net_http.start("code.google.com") do |http| resp = http.get("/p/selenium/downloads/list") resp.body.to_s[/selenium-server-standalone-(\d+.\d+.\d+).jar/, 1] end end
@param [String] jar Path to the server jar. @param [Hash] opts the options to create the server process with
@option opts [Integer] :port Port the server should listen on (default: 4444). @option opts [Integer] :timeout Seconds to wait for server launch/shutdown (default: 30) @option opts [true,false] :background Run the server in the background (default: false) @option opts [true,false,String] :log Either a path to a log file,
or true to pass server log to stdout.
@raise [Errno::ENOENT] if the jar file does not exist
# File lib/selenium/server.rb, line 140 def initialize(jar, opts = {}) raise Errno::ENOENT, jar unless File.exist?(jar) @jar = jar @host = "127.0.0.1" @port = opts.fetch(:port, 4444) @timeout = opts.fetch(:timeout, 30) @background = opts.fetch(:background, false) @log = opts[:log] @additional_args = [] end
# File lib/selenium/server.rb, line 176 def <<(arg) if arg.kind_of?(Array) @additional_args += arg else @additional_args << arg.to_s end end
# File lib/selenium/server.rb, line 153 def start process.start poll_for_service process.wait unless @background end
Generated with the Darkfish Rdoc Generator 2.