class Capybara::Poltergeist::Driver
Constants
- DEFAULT_TIMEOUT
Attributes
app[R]
browser[R]
client[R]
options[R]
server[R]
Public Class Methods
new(app, options = {})
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 9 def initialize(app, options = {}) @app = app @options = options @browser = nil @inspector = nil @server = nil @client = nil @started = false end
Public Instance Methods
add_header(name, value, options = {})
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 201 def add_header(name, value, options = {}) permanent = options.fetch(:permanent, true) browser.add_header({ name => value }, permanent) end
add_headers(headers)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 197 def add_headers(headers) browser.add_headers(headers) end
clear_network_traffic()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 185 def clear_network_traffic browser.clear_network_traffic end
click(x, y)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 125 def click(x, y) browser.click_coordinates(x, y) end
client_pid()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 56 def client_pid client.pid end
current_url()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 92 def current_url browser.current_url end
debug()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 247 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)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 129 def evaluate_script(script) browser.evaluate(script) end
execute_script(script)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 133 def execute_script(script) browser.execute(script) nil end
find(method, selector)
click to toggle source
# 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)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 121 def find_css(selector) find :css, selector end
find_xpath(selector)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 117 def find_xpath(selector) find :xpath, selector end
go_back()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 270 def go_back browser.go_back end
go_forward()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 274 def go_forward browser.go_forward end
headers()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 189 def headers browser.get_headers end
headers=(headers)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 193 def headers=(headers) browser.set_headers(headers) end
html()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 100 def html browser.body end
Also aliased as: body
inspector()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 33 def inspector @inspector ||= options[:inspector] && Inspector.new(options[:inspector]) end
invalid_element_errors()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 266 def invalid_element_errors [Capybara::Poltergeist::ObsoleteNode, Capybara::Poltergeist::MouseEventFailed] end
logger()
click to toggle source
logger should be an object that responds to puts, or nil
# File lib/capybara/poltergeist/driver.rb, line 78 def logger options[:logger] || (options[:debug] && STDERR) end
needs_server?()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 19 def needs_server? true end
network_traffic()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 181 def network_traffic browser.network_traffic end
paper_size=(size = {})
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 164 def paper_size=(size = {}) browser.set_paper_size(size) end
pause()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 257 def pause STDERR.puts "Poltergeist execution paused. Press enter to continue." STDIN.gets end
phantomjs_logger()
click to toggle source
logger should be an object that behaves like IO or nil
# File lib/capybara/poltergeist/driver.rb, line 83 def phantomjs_logger options.fetch(:phantomjs_logger, nil) end
phantomjs_options()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 50 def phantomjs_options list = options[:phantomjs_options] || [] list += ["--remote-debugger-port=#{inspector.port}", "--remote-debugger-autorun=yes"] if inspector list end
quit()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 72 def quit server.stop client.stop end
render_base64(format = :png, options = {})
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 160 def render_base64(format = :png, options = {}) browser.render_base64(format, options) end
reset!()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 150 def reset! browser.reset @started = false end
resize(width, height)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 172 def resize(width, height) browser.resize(width, height) end
Also aliased as: resize_window
response_headers()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 206 def response_headers browser.response_headers end
restart()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 68 def restart browser.restart end
save_screenshot(path, options = {})
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 155 def save_screenshot(path, options = {}) browser.render(path, options) end
Also aliased as: render
scroll_to(left, top)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 177 def scroll_to(left, top) browser.scroll_to(left, top) end
source()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 105 def source browser.source.to_s end
status_code()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 96 def status_code browser.status_code end
timeout()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 60 def timeout server.timeout end
timeout=(sec)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 64 def timeout=(sec) server.timeout = sec end
title()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 109 def title browser.title end
visit(url)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 87 def visit(url) @started = true browser.visit(url) end
wait?()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 262 def wait? true end
window_handles()
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 146 def window_handles browser.window_handles end
within_frame(name, &block)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 138 def within_frame(name, &block) browser.within_frame(name, &block) end
within_window(name, &block)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 142 def within_window(name, &block) browser.within_window(name, &block) end
zoom_factor=(zoom_factor)
click to toggle source
# File lib/capybara/poltergeist/driver.rb, line 168 def zoom_factor=(zoom_factor) browser.set_zoom_factor(zoom_factor) end