Class: Capybara::Webkit::Browser

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

Instance Method Summary collapse

Constructor Details

#initialize(connection) ⇒ Browser

Returns a new instance of Browser.



5
6
7
# File 'lib/capybara/webkit/browser.rb', line 5

def initialize(connection)
  @connection = connection
end

Instance Method Details

#authenticate(username, password) ⇒ Object



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

def authenticate(username, password)
  command("Authenticate", username, password)
end

#bodyObject



33
34
35
# File 'lib/capybara/webkit/browser.rb', line 33

def body
  command("Body")
end

#clear_cookiesObject



136
137
138
# File 'lib/capybara/webkit/browser.rb', line 136

def clear_cookies
  command "ClearCookies"
end

#clear_proxyObject



149
150
151
# File 'lib/capybara/webkit/browser.rb', line 149

def clear_proxy
  command("SetProxy")
end

#command(name, *args) ⇒ Object



108
109
110
111
112
113
114
115
116
117
# File 'lib/capybara/webkit/browser.rb', line 108

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

#console_messagesObject



45
46
47
48
49
50
# File 'lib/capybara/webkit/browser.rb', line 45

def console_messages
  command("ConsoleMessages").split("\n").map do |messages|
    parts = messages.split("|", 3)
    { :source => parts.first, :line_number => Integer(parts[1]), :message => parts.last }
  end
end

#current_urlObject



70
71
72
# File 'lib/capybara/webkit/browser.rb', line 70

def current_url
  command("CurrentUrl")
end

#enable_loggingObject



13
14
15
# File 'lib/capybara/webkit/browser.rb', line 13

def enable_logging
  command "EnableLogging"
end

#error_messagesObject



52
53
54
55
56
# File 'lib/capybara/webkit/browser.rb', line 52

def error_messages
  console_messages.select do |message|
    message[:message] =~ /Error:/
  end
end

#evaluate_script(script) ⇒ Object



119
120
121
122
# File 'lib/capybara/webkit/browser.rb', line 119

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

#execute_script(script) ⇒ Object



124
125
126
# File 'lib/capybara/webkit/browser.rb', line 124

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

#find(query) ⇒ Object



25
26
27
# File 'lib/capybara/webkit/browser.rb', line 25

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

#frame_focus(frame_id_or_index = nil) ⇒ Object



74
75
76
77
78
79
80
81
82
# File 'lib/capybara/webkit/browser.rb', line 74

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

#get_cookiesObject



140
141
142
# File 'lib/capybara/webkit/browser.rb', line 140

def get_cookies
  command("GetCookies").lines.map{ |line| line.strip }.select{ |line| !line.empty? }
end

#get_window_handleObject Also known as: window_handle



102
103
104
# File 'lib/capybara/webkit/browser.rb', line 102

def get_window_handle
  command('GetWindowHandle')
end

#get_window_handlesObject Also known as: window_handles



96
97
98
# File 'lib/capybara/webkit/browser.rb', line 96

def get_window_handles
  JSON.parse(command('GetWindowHandles'))
end

#header(key, value) ⇒ Object



21
22
23
# File 'lib/capybara/webkit/browser.rb', line 21

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

#ignore_ssl_errorsObject



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

def ignore_ssl_errors
  command("IgnoreSslErrors")
end

#render(path, width, height) ⇒ Object



128
129
130
# File 'lib/capybara/webkit/browser.rb', line 128

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

#requested_urlObject



66
67
68
# File 'lib/capybara/webkit/browser.rb', line 66

def requested_url
  command("RequestedUrl")
end

#reset!Object



29
30
31
# File 'lib/capybara/webkit/browser.rb', line 29

def reset!
  command("Reset")
end

#resize_window(width, height) ⇒ Object



153
154
155
# File 'lib/capybara/webkit/browser.rb', line 153

def resize_window(width, height)
  command("ResizeWindow", width.to_i, height.to_i)
end

#response_headersObject



58
59
60
# File 'lib/capybara/webkit/browser.rb', line 58

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


132
133
134
# File 'lib/capybara/webkit/browser.rb', line 132

def set_cookie(cookie)
  command "SetCookie", cookie
end

#set_proxy(options = {}) ⇒ Object



144
145
146
147
# File 'lib/capybara/webkit/browser.rb', line 144

def set_proxy(options = {})
  options = default_proxy_options.merge(options)
  command("SetProxy", options[:host], options[:port], options[:user], options[:pass])
end

#set_skip_image_loading(skip_image_loading) ⇒ Object



88
89
90
# File 'lib/capybara/webkit/browser.rb', line 88

def set_skip_image_loading(skip_image_loading)
  command("SetSkipImageLoading", skip_image_loading)
end

#sourceObject



37
38
39
# File 'lib/capybara/webkit/browser.rb', line 37

def source
  command("Source")
end

#status_codeObject



41
42
43
# File 'lib/capybara/webkit/browser.rb', line 41

def status_code
  command("Status").to_i
end

#urlObject



62
63
64
# File 'lib/capybara/webkit/browser.rb', line 62

def url
  command("Url")
end

#visit(url) ⇒ Object



17
18
19
# File 'lib/capybara/webkit/browser.rb', line 17

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

#window_focus(selector) ⇒ Object



92
93
94
# File 'lib/capybara/webkit/browser.rb', line 92

def window_focus(selector)
  command("WindowFocus", selector)
end