Class: Capybara::Webkit::Driver
- Inherits:
-
Driver::Base
- Object
- Driver::Base
- Capybara::Webkit::Driver
- Defined in:
- lib/capybara/webkit/driver.rb
Instance Attribute Summary collapse
-
#browser ⇒ Object
readonly
Returns the value of attribute browser.
Instance Method Summary collapse
- #accept_js_confirms! ⇒ Object
- #accept_js_prompts! ⇒ Object
- #accept_modal(type, options = {}) ⇒ Object
- #alert_messages ⇒ Object
- #allow_url(url) ⇒ Object
- #block_unknown_urls ⇒ Object
- #block_url(url) ⇒ Object
- #close_window(selector) ⇒ Object
- #confirm_messages ⇒ Object
- #console_messages ⇒ Object
- #cookies ⇒ Object
- #current_url ⇒ Object
- #current_window_handle ⇒ Object
- #dismiss_js_confirms! ⇒ Object
- #dismiss_js_prompts! ⇒ Object
- #dismiss_modal(type, options = {}) ⇒ Object
- #enable_logging ⇒ Object
- #error_messages ⇒ Object
- #evaluate_script(script) ⇒ Object
- #execute_script(script) ⇒ Object
- #find_css(selector) ⇒ Object
- #find_xpath(xpath) ⇒ Object (also: #find)
- #go_back ⇒ Object
- #go_forward ⇒ Object
- #has_shortcircuit_timeout? ⇒ Boolean
- #header(key, value) ⇒ Object
- #html ⇒ Object
-
#initialize(app, options = {}) ⇒ Driver
constructor
A new instance of Driver.
- #invalid_element_errors ⇒ Object
- #js_prompt_input=(value) ⇒ Object
- #maximize_window(selector) ⇒ Object
- #needs_server? ⇒ Boolean
- #no_such_window_error ⇒ Object
- #open_new_window ⇒ Object
- #prompt_messages ⇒ Object
- #reset! ⇒ Object
- #resize_window(width, height) ⇒ Object
- #resize_window_to(handle, width, height) ⇒ Object
- #response_headers ⇒ Object
- #save_screenshot(path, options = {}) ⇒ Object
- #status_code ⇒ Object
- #switch_to_window(selector) ⇒ Object
- #title ⇒ Object
- #version ⇒ Object
- #visit(path) ⇒ Object
- #wait? ⇒ Boolean
- #window_handles ⇒ Object
- #window_size(handle) ⇒ Object
- #within_frame(selector) ⇒ Object
- #within_window(selector) ⇒ Object
Constructor Details
#initialize(app, options = {}) ⇒ Driver
Returns a new instance of Driver.
14 15 16 17 18 |
# File 'lib/capybara/webkit/driver.rb', line 14 def initialize(app, ={}) @app = app @options = @browser = [:browser] || Browser.new(Connection.new()) end |
Instance Attribute Details
#browser ⇒ Object (readonly)
Returns the value of attribute browser.
12 13 14 |
# File 'lib/capybara/webkit/driver.rb', line 12 def browser @browser end |
Instance Method Details
#accept_js_confirms! ⇒ Object
168 169 170 171 172 |
# File 'lib/capybara/webkit/driver.rb', line 168 def accept_js_confirms! warn '[DEPRECATION] Capybara::Webkit::Driver#accept_js_confirms! ' \ 'is deprecated. Please use Capybara::Session#accept_confirm instead.' browser.accept_js_confirms end |
#accept_js_prompts! ⇒ Object
180 181 182 183 184 |
# File 'lib/capybara/webkit/driver.rb', line 180 def accept_js_prompts! warn '[DEPRECATION] Capybara::Webkit::Driver#accept_js_prompts! ' \ 'is deprecated. Please use Capybara::Session#accept_prompt instead.' browser.accept_js_prompts end |
#accept_modal(type, options = {}) ⇒ Object
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 |
# File 'lib/capybara/webkit/driver.rb', line 210 def accept_modal(type, ={}) = () case type when :confirm id = browser.accept_confirm() when :prompt id = browser.accept_prompt() else id = browser.accept_alert() end yield find_modal(type, id, ) end |
#alert_messages ⇒ Object
83 84 85 86 87 |
# File 'lib/capybara/webkit/driver.rb', line 83 def warn '[DEPRECATION] Capybara::Webkit::Driver#alert_messages ' \ 'is deprecated. Please use Capybara::Session#accept_alert instead.' browser. end |
#allow_url(url) ⇒ Object
24 25 26 |
# File 'lib/capybara/webkit/driver.rb', line 24 def allow_url(url) browser.allow_url(url) end |
#block_unknown_urls ⇒ Object
32 33 34 |
# File 'lib/capybara/webkit/driver.rb', line 32 def block_unknown_urls browser.block_unknown_urls end |
#block_url(url) ⇒ Object
28 29 30 |
# File 'lib/capybara/webkit/driver.rb', line 28 def block_url(url) browser.block_url(url) end |
#close_window(selector) ⇒ Object
160 161 162 |
# File 'lib/capybara/webkit/driver.rb', line 160 def close_window(selector) browser.window_close(selector) end |
#confirm_messages ⇒ Object
89 90 91 92 93 94 |
# File 'lib/capybara/webkit/driver.rb', line 89 def warn '[DEPRECATION] Capybara::Webkit::Driver#confirm_messages ' \ 'is deprecated. Please use Capybara::Session#accept_confirm ' \ 'or Capybara::Session#dismiss_confirm instead.' browser. end |
#console_messages ⇒ Object
75 76 77 |
# File 'lib/capybara/webkit/driver.rb', line 75 def browser. end |
#cookies ⇒ Object
265 266 267 |
# File 'lib/capybara/webkit/driver.rb', line 265 def @cookie_jar ||= CookieJar.new(browser) end |
#current_url ⇒ Object
36 37 38 |
# File 'lib/capybara/webkit/driver.rb', line 36 def current_url browser.current_url end |
#current_window_handle ⇒ Object
152 153 154 |
# File 'lib/capybara/webkit/driver.rb', line 152 def current_window_handle browser.get_window_handle end |
#dismiss_js_confirms! ⇒ Object
174 175 176 177 178 |
# File 'lib/capybara/webkit/driver.rb', line 174 def dismiss_js_confirms! warn '[DEPRECATION] Capybara::Webkit::Driver#dismiss_js_confirms! ' \ 'is deprecated. Please use Capybara::Session#dismiss_confirm instead.' browser.reject_js_confirms end |
#dismiss_js_prompts! ⇒ Object
186 187 188 189 190 |
# File 'lib/capybara/webkit/driver.rb', line 186 def dismiss_js_prompts! warn '[DEPRECATION] Capybara::Webkit::Driver#dismiss_js_prompts! ' \ 'is deprecated. Please use Capybara::Session#dismiss_prompt instead.' browser.reject_js_prompts end |
#dismiss_modal(type, options = {}) ⇒ Object
227 228 229 230 231 232 233 234 235 236 237 238 239 240 |
# File 'lib/capybara/webkit/driver.rb', line 227 def dismiss_modal(type, ={}) = () case type when :confirm id = browser.reject_confirm() else id = browser.reject_prompt() end yield find_modal(type, id, ) end |
#enable_logging ⇒ Object
20 21 22 |
# File 'lib/capybara/webkit/driver.rb', line 20 def enable_logging browser.enable_logging end |
#error_messages ⇒ Object
79 80 81 |
# File 'lib/capybara/webkit/driver.rb', line 79 def browser. end |
#evaluate_script(script) ⇒ Object
71 72 73 |
# File 'lib/capybara/webkit/driver.rb', line 71 def evaluate_script(script) browser.evaluate_script script end |
#execute_script(script) ⇒ Object
66 67 68 69 |
# File 'lib/capybara/webkit/driver.rb', line 66 def execute_script(script) value = browser.execute_script script value.empty? ? nil : value end |
#find_css(selector) ⇒ Object
50 51 52 |
# File 'lib/capybara/webkit/driver.rb', line 50 def find_css(selector) browser.find_css(selector).map { |native| Node.new(self, native) } end |
#find_xpath(xpath) ⇒ Object Also known as: find
44 45 46 |
# File 'lib/capybara/webkit/driver.rb', line 44 def find_xpath(xpath) browser.find_xpath(xpath).map { |native| Node.new(self, native) } end |
#go_back ⇒ Object
202 203 204 |
# File 'lib/capybara/webkit/driver.rb', line 202 def go_back browser.go_back end |
#go_forward ⇒ Object
206 207 208 |
# File 'lib/capybara/webkit/driver.rb', line 206 def go_forward browser.go_forward end |
#has_shortcircuit_timeout? ⇒ Boolean
254 255 256 |
# File 'lib/capybara/webkit/driver.rb', line 254 def has_shortcircuit_timeout? false end |
#header(key, value) ⇒ Object
58 59 60 |
# File 'lib/capybara/webkit/driver.rb', line 58 def header(key, value) browser.header(key, value) end |
#html ⇒ Object
54 55 56 |
# File 'lib/capybara/webkit/driver.rb', line 54 def html browser.body end |
#invalid_element_errors ⇒ Object
269 270 271 |
# File 'lib/capybara/webkit/driver.rb', line 269 def invalid_element_errors [Capybara::Webkit::ClickFailed] end |
#js_prompt_input=(value) ⇒ Object
192 193 194 195 196 197 198 199 200 |
# File 'lib/capybara/webkit/driver.rb', line 192 def js_prompt_input=(value) warn '[DEPRECATION] Capybara::Webkit::Driver#js_prompt_input= ' \ 'is deprecated. Please use Capybara::Session#accept_prompt instead.' if value.nil? browser.clear_prompt_text else browser.set_prompt_text_to(value) end end |
#maximize_window(selector) ⇒ Object
164 165 166 |
# File 'lib/capybara/webkit/driver.rb', line 164 def maximize_window(selector) browser.window_maximize(selector) end |
#needs_server? ⇒ Boolean
246 247 248 |
# File 'lib/capybara/webkit/driver.rb', line 246 def needs_server? true end |
#no_such_window_error ⇒ Object
273 274 275 |
# File 'lib/capybara/webkit/driver.rb', line 273 def no_such_window_error Capybara::Webkit::NoSuchWindowError end |
#open_new_window ⇒ Object
156 157 158 |
# File 'lib/capybara/webkit/driver.rb', line 156 def open_new_window browser.window_open end |
#prompt_messages ⇒ Object
96 97 98 99 100 101 |
# File 'lib/capybara/webkit/driver.rb', line 96 def warn '[DEPRECATION] Capybara::Webkit::Driver#prompt_messages ' \ 'is deprecated. Please use Capybara::Session#accept_prompt ' \ 'or Capybara::Session#dismiss_prompt instead.' browser. end |
#reset! ⇒ Object
250 251 252 |
# File 'lib/capybara/webkit/driver.rb', line 250 def reset! browser.reset! end |
#resize_window(width, height) ⇒ Object
111 112 113 114 115 |
# File 'lib/capybara/webkit/driver.rb', line 111 def resize_window(width, height) warn '[DEPRECATION] Capybara::Webkit::Driver#resize_window ' \ 'is deprecated. Please use Capybara::Window#resize_to instead.' resize_window_to(current_window_handle, width, height) end |
#resize_window_to(handle, width, height) ⇒ Object
117 118 119 |
# File 'lib/capybara/webkit/driver.rb', line 117 def resize_window_to(handle, width, height) browser.window_resize(handle, width, height) end |
#response_headers ⇒ Object
103 104 105 |
# File 'lib/capybara/webkit/driver.rb', line 103 def response_headers browser.response_headers end |
#save_screenshot(path, options = {}) ⇒ Object
258 259 260 261 262 263 |
# File 'lib/capybara/webkit/driver.rb', line 258 def save_screenshot(path, ={}) [:width] ||= 1000 [:height] ||= 10 browser.render path, [:width], [:height] end |
#status_code ⇒ Object
107 108 109 |
# File 'lib/capybara/webkit/driver.rb', line 107 def status_code browser.status_code end |
#switch_to_window(selector) ⇒ Object
144 145 146 |
# File 'lib/capybara/webkit/driver.rb', line 144 def switch_to_window(selector) browser.window_focus(selector) end |
#title ⇒ Object
62 63 64 |
# File 'lib/capybara/webkit/driver.rb', line 62 def title browser.title end |
#version ⇒ Object
277 278 279 280 281 282 283 |
# File 'lib/capybara/webkit/driver.rb', line 277 def version [ "Capybara: #{Capybara::VERSION}", "capybara-webkit: #{Capybara::Driver::Webkit::VERSION}", browser.version ].join("\n") end |
#visit(path) ⇒ Object
40 41 42 |
# File 'lib/capybara/webkit/driver.rb', line 40 def visit(path) browser.visit(path) end |
#wait? ⇒ Boolean
242 243 244 |
# File 'lib/capybara/webkit/driver.rb', line 242 def wait? true end |
#window_handles ⇒ Object
148 149 150 |
# File 'lib/capybara/webkit/driver.rb', line 148 def window_handles browser.get_window_handles end |
#window_size(handle) ⇒ Object
121 122 123 |
# File 'lib/capybara/webkit/driver.rb', line 121 def window_size(handle) browser.window_size(handle) end |
#within_frame(selector) ⇒ Object
125 126 127 128 129 130 131 132 |
# File 'lib/capybara/webkit/driver.rb', line 125 def within_frame(selector) browser.frame_focus(selector) begin yield ensure browser.frame_focus end end |
#within_window(selector) ⇒ Object
134 135 136 137 138 139 140 141 142 |
# File 'lib/capybara/webkit/driver.rb', line 134 def within_window(selector) current_window = current_window_handle switch_to_window(selector) begin yield ensure browser.window_focus(current_window) end end |