Class: Capybara::Poltergeist::Driver
- Inherits:
-
Driver::Base
- Object
- Driver::Base
- Capybara::Poltergeist::Driver
- Defined in:
- lib/capybara/poltergeist/driver.rb
Constant Summary collapse
- DEFAULT_TIMEOUT =
30
Instance Attribute Summary collapse
-
#app ⇒ Object
readonly
Returns the value of attribute app.
-
#browser ⇒ Object
readonly
Returns the value of attribute browser.
-
#client ⇒ Object
readonly
Returns the value of attribute client.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#server ⇒ Object
readonly
Returns the value of attribute server.
Instance Method Summary collapse
- #click(x, y) ⇒ Object
- #client_pid ⇒ Object
- #cookies ⇒ Object
- #cookies_enabled=(flag) ⇒ Object
- #current_url ⇒ Object
- #debug ⇒ Object
- #evaluate_script(script) ⇒ Object
- #execute_script(script) ⇒ Object
- #find(method, selector) ⇒ Object
- #find_css(selector) ⇒ Object
- #find_xpath(selector) ⇒ Object
- #headers=(headers) ⇒ Object
- #html ⇒ Object (also: #body)
-
#initialize(app, options = {}) ⇒ Driver
constructor
A new instance of Driver.
- #inspector ⇒ Object
- #invalid_element_errors ⇒ Object
-
#logger ⇒ Object
logger should be an object that responds to puts, or nil.
- #needs_server? ⇒ Boolean
- #network_traffic ⇒ Object
- #pause ⇒ Object
-
#phantomjs_logger ⇒ Object
logger should be an object that behaves like IO or nil.
- #phantomjs_options ⇒ Object
- #quit ⇒ Object
- #remove_cookie(name) ⇒ Object
- #reset! ⇒ Object
- #resize(width, height) ⇒ Object (also: #resize_window)
- #response_headers ⇒ Object
- #restart ⇒ Object
- #save_screenshot(path, options = {}) ⇒ Object (also: #render)
- #set_cookie(name, value, options = {}) ⇒ Object
- #source ⇒ Object
- #status_code ⇒ Object
- #timeout ⇒ Object
- #timeout=(sec) ⇒ Object
- #title ⇒ Object
- #visit(url) ⇒ Object
- #wait? ⇒ Boolean
- #within_frame(name, &block) ⇒ Object
- #within_window(name, &block) ⇒ Object
Constructor Details
#initialize(app, options = {}) ⇒ Driver
Returns a new instance of Driver.
9 10 11 12 13 14 15 16 17 |
# File 'lib/capybara/poltergeist/driver.rb', line 9 def initialize(app, = {}) @app = app @options = @browser = nil @inspector = nil @server = nil @client = nil @started = false end |
Instance Attribute Details
#app ⇒ Object (readonly)
Returns the value of attribute app.
7 8 9 |
# File 'lib/capybara/poltergeist/driver.rb', line 7 def app @app end |
#browser ⇒ Object (readonly)
Returns the value of attribute browser.
7 8 9 |
# File 'lib/capybara/poltergeist/driver.rb', line 7 def browser @browser end |
#client ⇒ Object (readonly)
Returns the value of attribute client.
7 8 9 |
# File 'lib/capybara/poltergeist/driver.rb', line 7 def client @client end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
7 8 9 |
# File 'lib/capybara/poltergeist/driver.rb', line 7 def @options end |
#server ⇒ Object (readonly)
Returns the value of attribute server.
7 8 9 |
# File 'lib/capybara/poltergeist/driver.rb', line 7 def server @server end |
Instance Method Details
#click(x, y) ⇒ Object
125 126 127 |
# File 'lib/capybara/poltergeist/driver.rb', line 125 def click(x, y) browser.click_coordinates(x, y) end |
#client_pid ⇒ Object
56 57 58 |
# File 'lib/capybara/poltergeist/driver.rb', line 56 def client_pid client.pid end |
#cookies ⇒ Object
173 174 175 |
# File 'lib/capybara/poltergeist/driver.rb', line 173 def browser. end |
#cookies_enabled=(flag) ⇒ Object
194 195 196 |
# File 'lib/capybara/poltergeist/driver.rb', line 194 def (flag) browser. = flag end |
#current_url ⇒ Object
92 93 94 |
# File 'lib/capybara/poltergeist/driver.rb', line 92 def current_url browser.current_url end |
#debug ⇒ Object
198 199 200 201 202 203 204 205 206 |
# File 'lib/capybara/poltergeist/driver.rb', line 198 def debug if @options[:inspector] inspector.open pause else raise Error, "To use the remote debugging, you have to launch the driver " \ "with `:inspector => true` configuration option" end end |
#evaluate_script(script) ⇒ Object
129 130 131 |
# File 'lib/capybara/poltergeist/driver.rb', line 129 def evaluate_script(script) browser.evaluate(script) end |
#execute_script(script) ⇒ Object
133 134 135 136 |
# File 'lib/capybara/poltergeist/driver.rb', line 133 def execute_script(script) browser.execute(script) nil end |
#find(method, selector) ⇒ Object
113 114 115 |
# File 'lib/capybara/poltergeist/driver.rb', line 113 def find(method, selector) browser.find(method, selector).map { |page_id, id| Capybara::Poltergeist::Node.new(self, page_id, id) } end |
#find_css(selector) ⇒ Object
121 122 123 |
# File 'lib/capybara/poltergeist/driver.rb', line 121 def find_css(selector) find :css, selector end |
#find_xpath(selector) ⇒ Object
117 118 119 |
# File 'lib/capybara/poltergeist/driver.rb', line 117 def find_xpath(selector) find :xpath, selector end |
#headers=(headers) ⇒ Object
165 166 167 |
# File 'lib/capybara/poltergeist/driver.rb', line 165 def headers=(headers) browser.set_headers(headers) end |
#html ⇒ Object Also known as: body
100 101 102 |
# File 'lib/capybara/poltergeist/driver.rb', line 100 def html browser.body end |
#inspector ⇒ Object
33 34 35 |
# File 'lib/capybara/poltergeist/driver.rb', line 33 def inspector @inspector ||= [:inspector] && Inspector.new([:inspector]) end |
#invalid_element_errors ⇒ Object
217 218 219 |
# File 'lib/capybara/poltergeist/driver.rb', line 217 def invalid_element_errors [Capybara::Poltergeist::ObsoleteNode, Capybara::Poltergeist::MouseEventFailed] end |
#logger ⇒ Object
logger should be an object that responds to puts, or nil
78 79 80 |
# File 'lib/capybara/poltergeist/driver.rb', line 78 def logger [:logger] || ([:debug] && STDERR) end |
#needs_server? ⇒ Boolean
19 20 21 |
# File 'lib/capybara/poltergeist/driver.rb', line 19 def needs_server? true end |
#network_traffic ⇒ Object
161 162 163 |
# File 'lib/capybara/poltergeist/driver.rb', line 161 def network_traffic browser.network_traffic end |
#pause ⇒ Object
208 209 210 211 |
# File 'lib/capybara/poltergeist/driver.rb', line 208 def pause STDERR.puts "Poltergeist execution paused. Press enter to continue." STDIN.gets end |
#phantomjs_logger ⇒ Object
logger should be an object that behaves like IO or nil
83 84 85 |
# File 'lib/capybara/poltergeist/driver.rb', line 83 def phantomjs_logger .fetch(:phantomjs_logger, nil) end |
#phantomjs_options ⇒ Object
50 51 52 53 54 |
# File 'lib/capybara/poltergeist/driver.rb', line 50 def list = [:phantomjs_options] || [] list += ["--remote-debugger-port=#{inspector.port}", "--remote-debugger-autorun=yes"] if inspector list end |
#quit ⇒ Object
72 73 74 75 |
# File 'lib/capybara/poltergeist/driver.rb', line 72 def quit server.stop client.stop end |
#remove_cookie(name) ⇒ Object
190 191 192 |
# File 'lib/capybara/poltergeist/driver.rb', line 190 def (name) browser.(name) end |
#reset! ⇒ Object
146 147 148 149 |
# File 'lib/capybara/poltergeist/driver.rb', line 146 def reset! browser.reset @started = false end |
#resize(width, height) ⇒ Object Also known as: resize_window
156 157 158 |
# File 'lib/capybara/poltergeist/driver.rb', line 156 def resize(width, height) browser.resize(width, height) end |
#response_headers ⇒ Object
169 170 171 |
# File 'lib/capybara/poltergeist/driver.rb', line 169 def response_headers browser.response_headers end |
#restart ⇒ Object
68 69 70 |
# File 'lib/capybara/poltergeist/driver.rb', line 68 def restart browser.restart end |
#save_screenshot(path, options = {}) ⇒ Object Also known as: render
151 152 153 |
# File 'lib/capybara/poltergeist/driver.rb', line 151 def save_screenshot(path, = {}) browser.render(path, ) end |
#set_cookie(name, value, options = {}) ⇒ Object
177 178 179 180 181 182 183 184 185 186 187 188 |
# File 'lib/capybara/poltergeist/driver.rb', line 177 def (name, value, = {}) [:name] ||= name [:value] ||= value if @started [:domain] = URI.parse(browser.current_url).host else [:domain] = Capybara.app_host || "127.0.0.1" end browser.() end |
#source ⇒ Object
105 106 107 |
# File 'lib/capybara/poltergeist/driver.rb', line 105 def source browser.source.to_s end |
#status_code ⇒ Object
96 97 98 |
# File 'lib/capybara/poltergeist/driver.rb', line 96 def status_code browser.status_code end |
#timeout ⇒ Object
60 61 62 |
# File 'lib/capybara/poltergeist/driver.rb', line 60 def timeout server.timeout end |
#timeout=(sec) ⇒ Object
64 65 66 |
# File 'lib/capybara/poltergeist/driver.rb', line 64 def timeout=(sec) server.timeout = sec end |
#title ⇒ Object
109 110 111 |
# File 'lib/capybara/poltergeist/driver.rb', line 109 def title browser.title end |
#visit(url) ⇒ Object
87 88 89 90 |
# File 'lib/capybara/poltergeist/driver.rb', line 87 def visit(url) @started = true browser.visit(url) end |
#wait? ⇒ Boolean
213 214 215 |
# File 'lib/capybara/poltergeist/driver.rb', line 213 def wait? true end |
#within_frame(name, &block) ⇒ Object
138 139 140 |
# File 'lib/capybara/poltergeist/driver.rb', line 138 def within_frame(name, &block) browser.within_frame(name, &block) end |
#within_window(name, &block) ⇒ Object
142 143 144 |
# File 'lib/capybara/poltergeist/driver.rb', line 142 def within_window(name, &block) browser.within_window(name, &block) end |