Class: Capybara::Driver::Webkit::Browser

Inherits:
Object
  • Object
show all
Defined in:
lib/capybara/driver/webkit/browser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Browser

Returns a new instance of Browser.



10
11
12
13
14
15
16
17
# File 'lib/capybara/driver/webkit/browser.rb', line 10

def initialize(options = {})
  @socket_class = options[:socket_class] || TCPSocket
  @stdout       = options.has_key?(:stdout) ?
                    options[:stdout] :
                    $stdout
  start_server
  connect
end

Instance Attribute Details

#server_portObject (readonly)

Returns the value of attribute server_port.



8
9
10
# File 'lib/capybara/driver/webkit/browser.rb', line 8

def server_port
  @server_port
end

Instance Method Details

#bodyObject



35
36
37
# File 'lib/capybara/driver/webkit/browser.rb', line 35

def body
  command("Body")
end

#command(name, *args) ⇒ Object



65
66
67
68
69
70
71
72
73
74
# File 'lib/capybara/driver/webkit/browser.rb', line 65

def command(name, *args)
  @socket.puts name
  @socket.puts args.size
  args.each do |arg|
    @socket.puts arg.to_s.bytesize
    @socket.print arg.to_s
  end
  check
  read_response
end

#evaluate_script(script) ⇒ Object



76
77
78
79
# File 'lib/capybara/driver/webkit/browser.rb', line 76

def evaluate_script(script)
  json = command('Evaluate', script)
  JSON.parse("[#{json}]").first
end

#execute_script(script) ⇒ Object



81
82
83
# File 'lib/capybara/driver/webkit/browser.rb', line 81

def execute_script(script)
  command('Execute', script)
end

#find(query) ⇒ Object



27
28
29
# File 'lib/capybara/driver/webkit/browser.rb', line 27

def find(query)
  command("Find", query).split(",")
end

#frame_focus(frame_id_or_index = nil) ⇒ Object



55
56
57
58
59
60
61
62
63
# File 'lib/capybara/driver/webkit/browser.rb', line 55

def frame_focus(frame_id_or_index=nil)
  if frame_id_or_index.is_a? Fixnum
    command("FrameFocus", "", frame_id_or_index.to_s)
  elsif frame_id_or_index
    command("FrameFocus", frame_id_or_index)
  else
    command("FrameFocus")
  end
end

#header(key, value) ⇒ Object



23
24
25
# File 'lib/capybara/driver/webkit/browser.rb', line 23

def header(key, value)
  command("Header", key, value)
end

#render(path, width, height) ⇒ Object



85
86
87
# File 'lib/capybara/driver/webkit/browser.rb', line 85

def render(path, width, height)
  command "Render", path, width, height
end

#reset!Object



31
32
33
# File 'lib/capybara/driver/webkit/browser.rb', line 31

def reset!
  command("Reset")
end

#response_headersObject



47
48
49
# File 'lib/capybara/driver/webkit/browser.rb', line 47

def response_headers
  Hash[command("Headers").split("\n").map { |header| header.split(": ") }]
end

#sourceObject



39
40
41
# File 'lib/capybara/driver/webkit/browser.rb', line 39

def source
  command("Source")
end

#status_codeObject



43
44
45
# File 'lib/capybara/driver/webkit/browser.rb', line 43

def status_code
  command("Status").to_i
end

#urlObject



51
52
53
# File 'lib/capybara/driver/webkit/browser.rb', line 51

def url
  command("Url")
end

#visit(url) ⇒ Object



19
20
21
# File 'lib/capybara/driver/webkit/browser.rb', line 19

def visit(url)
  command "Visit", url
end