Class: Capybara::Poltergeist::Browser
- Inherits:
-
Object
- Object
- Capybara::Poltergeist::Browser
- Defined in:
- lib/capybara/poltergeist/browser.rb
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#js_errors ⇒ Object
readonly
Returns the value of attribute js_errors.
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
-
#server ⇒ Object
readonly
Returns the value of attribute server.
Instance Method Summary collapse
- #attribute(page_id, id, name) ⇒ Object
- #body ⇒ Object
- #click(page_id, id) ⇒ Object
- #command(name, *args) ⇒ Object
- #cookies ⇒ Object
- #current_url ⇒ Object
- #drag(page_id, id, other_id) ⇒ Object
- #equals(page_id, id, other_id) ⇒ Object
- #evaluate(script) ⇒ Object
- #execute(script) ⇒ Object
- #find(selector) ⇒ Object
- #find_within(page_id, id, selector) ⇒ Object
-
#initialize(server, client, logger = nil, js_errors = true) ⇒ Browser
constructor
A new instance of Browser.
- #network_traffic ⇒ Object
- #remove_cookie(name) ⇒ Object
- #render(path, options = {}) ⇒ Object
- #reset ⇒ Object
- #resize(width, height) ⇒ Object
- #response_headers ⇒ Object
- #restart ⇒ Object
- #select(page_id, id, value) ⇒ Object
- #select_file(page_id, id, value) ⇒ Object
- #set(page_id, id, value) ⇒ Object
- #set_cookie(cookie) ⇒ Object
- #set_headers(headers) ⇒ Object
- #source ⇒ Object
- #status_code ⇒ Object
- #tag_name(page_id, id) ⇒ Object
- #text(page_id, id) ⇒ Object
- #trigger(page_id, id, event) ⇒ Object
- #value(page_id, id) ⇒ Object
- #visible?(page_id, id) ⇒ Boolean
- #visit(url) ⇒ Object
- #within_frame(name, &block) ⇒ Object
- #within_window(name, &block) ⇒ Object
Constructor Details
#initialize(server, client, logger = nil, js_errors = true) ⇒ Browser
Returns a new instance of Browser.
8 9 10 11 12 13 |
# File 'lib/capybara/poltergeist/browser.rb', line 8 def initialize(server, client, logger = nil, js_errors = true) @server = server @client = client @logger = logger @js_errors = js_errors end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
6 7 8 |
# File 'lib/capybara/poltergeist/browser.rb', line 6 def client @client end |
#js_errors ⇒ Object (readonly)
Returns the value of attribute js_errors.
6 7 8 |
# File 'lib/capybara/poltergeist/browser.rb', line 6 def js_errors @js_errors end |
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
6 7 8 |
# File 'lib/capybara/poltergeist/browser.rb', line 6 def logger @logger end |
#server ⇒ Object (readonly)
Returns the value of attribute server.
6 7 8 |
# File 'lib/capybara/poltergeist/browser.rb', line 6 def server @server end |
Instance Method Details
#attribute(page_id, id, name) ⇒ Object
53 54 55 |
# File 'lib/capybara/poltergeist/browser.rb', line 53 def attribute(page_id, id, name) command 'attribute', page_id, id, name.to_s end |
#body ⇒ Object
32 33 34 |
# File 'lib/capybara/poltergeist/browser.rb', line 32 def body command 'body' end |
#click(page_id, id) ⇒ Object
99 100 101 |
# File 'lib/capybara/poltergeist/browser.rb', line 99 def click(page_id, id) command 'click', page_id, id end |
#command(name, *args) ⇒ Object
164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/capybara/poltergeist/browser.rb', line 164 def command(name, *args) = { 'name' => name, 'args' => args } log .inspect json = JSON.load(server.send(JSON.dump())) log json.inspect if json['error'] if json['error']['name'] == 'Poltergeist.JavascriptError' error = JavascriptError.new(json['error']) if js_errors raise error else log error end else raise BrowserError.new(json['error']) end end json['response'] rescue DeadClient restart raise end |
#cookies ⇒ Object
148 149 150 |
# File 'lib/capybara/poltergeist/browser.rb', line 148 def Hash[command('cookies').map { || [['name'], Cookie.new()] }] end |
#current_url ⇒ Object
24 25 26 |
# File 'lib/capybara/poltergeist/browser.rb', line 24 def current_url command 'current_url' end |
#drag(page_id, id, other_id) ⇒ Object
103 104 105 |
# File 'lib/capybara/poltergeist/browser.rb', line 103 def drag(page_id, id, other_id) command 'drag', page_id, id, other_id end |
#equals(page_id, id, other_id) ⇒ Object
136 137 138 |
# File 'lib/capybara/poltergeist/browser.rb', line 136 def equals(page_id, id, other_id) command('equals', page_id, id, other_id) end |
#evaluate(script) ⇒ Object
77 78 79 |
# File 'lib/capybara/poltergeist/browser.rb', line 77 def evaluate(script) command 'evaluate', script end |
#execute(script) ⇒ Object
81 82 83 |
# File 'lib/capybara/poltergeist/browser.rb', line 81 def execute(script) command 'execute', script end |
#find(selector) ⇒ Object
40 41 42 43 |
# File 'lib/capybara/poltergeist/browser.rb', line 40 def find(selector) result = command('find', selector) result['ids'].map { |id| [result['page_id'], id] } end |
#find_within(page_id, id, selector) ⇒ Object
45 46 47 |
# File 'lib/capybara/poltergeist/browser.rb', line 45 def find_within(page_id, id, selector) command 'find_within', page_id, id, selector end |
#network_traffic ⇒ Object
127 128 129 130 131 132 133 134 |
# File 'lib/capybara/poltergeist/browser.rb', line 127 def network_traffic command('network_traffic').values.map do |event| NetworkTraffic::Request.new( event['request'], event['responseParts'].map { |response| NetworkTraffic::Response.new(response) } ) end end |
#remove_cookie(name) ⇒ Object
160 161 162 |
# File 'lib/capybara/poltergeist/browser.rb', line 160 def (name) command 'remove_cookie', name end |
#render(path, options = {}) ⇒ Object
119 120 121 |
# File 'lib/capybara/poltergeist/browser.rb', line 119 def render(path, = {}) command 'render', path.to_s, !![:full] end |
#reset ⇒ Object
115 116 117 |
# File 'lib/capybara/poltergeist/browser.rb', line 115 def reset command 'reset' end |
#resize(width, height) ⇒ Object
123 124 125 |
# File 'lib/capybara/poltergeist/browser.rb', line 123 def resize(width, height) command 'resize', width, height end |
#response_headers ⇒ Object
144 145 146 |
# File 'lib/capybara/poltergeist/browser.rb', line 144 def response_headers command 'response_headers' end |
#restart ⇒ Object
15 16 17 18 |
# File 'lib/capybara/poltergeist/browser.rb', line 15 def restart server.restart client.restart end |
#select(page_id, id, value) ⇒ Object
107 108 109 |
# File 'lib/capybara/poltergeist/browser.rb', line 107 def select(page_id, id, value) command 'select', page_id, id, value end |
#select_file(page_id, id, value) ⇒ Object
65 66 67 |
# File 'lib/capybara/poltergeist/browser.rb', line 65 def select_file(page_id, id, value) command 'select_file', page_id, id, value end |
#set(page_id, id, value) ⇒ Object
61 62 63 |
# File 'lib/capybara/poltergeist/browser.rb', line 61 def set(page_id, id, value) command 'set', page_id, id, value end |
#set_cookie(cookie) ⇒ Object
152 153 154 155 156 157 158 |
# File 'lib/capybara/poltergeist/browser.rb', line 152 def () if [:expires].respond_to?(:httpdate) [:expires] = [:expires].httpdate end command 'set_cookie', end |
#set_headers(headers) ⇒ Object
140 141 142 |
# File 'lib/capybara/poltergeist/browser.rb', line 140 def set_headers(headers) command 'set_headers', headers end |
#source ⇒ Object
36 37 38 |
# File 'lib/capybara/poltergeist/browser.rb', line 36 def source command 'source' end |
#status_code ⇒ Object
28 29 30 |
# File 'lib/capybara/poltergeist/browser.rb', line 28 def status_code command 'status_code' end |
#tag_name(page_id, id) ⇒ Object
69 70 71 |
# File 'lib/capybara/poltergeist/browser.rb', line 69 def tag_name(page_id, id) command('tag_name', page_id, id).downcase end |
#text(page_id, id) ⇒ Object
49 50 51 |
# File 'lib/capybara/poltergeist/browser.rb', line 49 def text(page_id, id) command 'text', page_id, id end |
#trigger(page_id, id, event) ⇒ Object
111 112 113 |
# File 'lib/capybara/poltergeist/browser.rb', line 111 def trigger(page_id, id, event) command 'trigger', page_id, id, event.to_s end |
#value(page_id, id) ⇒ Object
57 58 59 |
# File 'lib/capybara/poltergeist/browser.rb', line 57 def value(page_id, id) command 'value', page_id, id end |
#visible?(page_id, id) ⇒ Boolean
73 74 75 |
# File 'lib/capybara/poltergeist/browser.rb', line 73 def visible?(page_id, id) command 'visible', page_id, id end |
#visit(url) ⇒ Object
20 21 22 |
# File 'lib/capybara/poltergeist/browser.rb', line 20 def visit(url) command 'visit', url end |
#within_frame(name, &block) ⇒ Object
85 86 87 88 89 90 |
# File 'lib/capybara/poltergeist/browser.rb', line 85 def within_frame(name, &block) command 'push_frame', name yield ensure command 'pop_frame' end |
#within_window(name, &block) ⇒ Object
92 93 94 95 96 97 |
# File 'lib/capybara/poltergeist/browser.rb', line 92 def within_window(name, &block) command 'push_window', name yield ensure command 'pop_window' end |