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
Download the given version of the selenium-server-standalone jar.
# File lib/selenium/server.rb, line 39 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 31 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 86 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
# File lib/selenium/server.rb, line 93 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 135 def <<(arg) if arg.kind_of?(Array) @additional_args += arg else @additional_args << arg.to_s end end
# File lib/selenium/server.rb, line 106 def start process.start poll_for_service unless @background begin sleep 1 while process.alive? rescue Errno::ECHILD # no longer alive end end end
Generated with the Darkfish Rdoc Generator 2.