Module | Selenium::Client::Protocol |
In: |
lib/selenium/client/protocol.rb
|
Module in charge of handling Selenium over-the-wire HTTP protocol
session_id | [R] |
# File lib/selenium/client/protocol.rb, line 59 59: def boolean_array_command(verb, args) 60: string_array_command(verb, args).collect {|value| parse_boolean_value(value)} 61: end
# File lib/selenium/client/protocol.rb, line 55 55: def boolean_command(verb, args=[]) 56: parse_boolean_value string_command(verb, args) 57: end
# File lib/selenium/client/protocol.rb, line 51 51: def number_array_command(verb, args) 52: string_array_command verb, args 53: end
# File lib/selenium/client/protocol.rb, line 47 47: def number_command(verb, args) 48: string_command verb, args 49: end
# File lib/selenium/client/protocol.rb, line 10 10: def remote_control_command(verb, args=[]) 11: timeout(@default_timeout_in_seconds) do 12: status, response = http_post(http_request_for(verb, args)) 13: raise Selenium::CommandError, response unless status == "OK" 14: response 15: end 16: end
# File lib/selenium/client/protocol.rb, line 22 22: def string_array_command(verb, args=[]) 23: csv = string_command(verb, args) 24: token = "" 25: tokens = [] 26: escape = false 27: csv.split(//).each do |letter| 28: if escape 29: token += letter 30: escape = false 31: next 32: end 33: case letter 34: when '\\' 35: escape = true 36: when ',' 37: tokens << token 38: token = "" 39: else 40: token += letter 41: end 42: end 43: tokens << token 44: return tokens 45: end
# File lib/selenium/client/protocol.rb, line 18 18: def string_command(verb, args=[]) 19: remote_control_command(verb, args) 20: end
# File lib/selenium/client/protocol.rb, line 83 83: def http_post(data) 84: # puts "Requesting ---> #{data.inspect}" 85: http = Net::HTTP.new(@host, @port) 86: http.open_timeout = default_timeout_in_seconds 87: http.read_timeout = default_timeout_in_seconds 88: response = http.post('/selenium-server/driver/', data, HTTP_HEADERS) 89: # puts "RESULT: #{response.body.inspect}\n" 90: [ response.body[0..1], response.body[3..-1] ] 91: end
# File lib/selenium/client/protocol.rb, line 74 74: def http_request_for(verb, args) 75: data = "cmd=#{CGI::escape(verb)}" 76: args.each_with_index do |arg, index| 77: data << "&#{index.succ}=#{CGI::escape(arg.to_s)}" 78: end 79: data << "&sessionId=#{session_id}" unless session_id.nil? 80: data 81: end