Class: Smartshot::Screenshot
- Inherits:
-
Object
- Object
- Smartshot::Screenshot
- Includes:
- Capybara::DSL
- Defined in:
- lib/smartshot/screenshot.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ Screenshot
constructor
A new instance of Screenshot.
- #take_screenshot!(params = {}) ⇒ Object
Constructor Details
#initialize(options = {}) ⇒ Screenshot
Returns a new instance of Screenshot.
15 16 17 |
# File 'lib/smartshot/screenshot.rb', line 15 def initialize( = {}) Smartshot::Screenshot.() end |
Class Method Details
.setup_capybara(options = {}) ⇒ Object
5 6 7 8 9 10 11 12 13 |
# File 'lib/smartshot/screenshot.rb', line 5 def self.( = {}) defaults = { js_errors: false, phantomjs_options: ['--ignore-ssl-errors=yes', '--ssl-protocol=any'] } Capybara.register_driver :poltergeist do |app| Capybara::Poltergeist::Driver.new(app, defaults.merge()) end Capybara.run_server = .delete(:run_server) || false Capybara.current_driver = :poltergeist Capybara.default_wait_time = .delete(:default_wait_time) || 30 end |
Instance Method Details
#take_screenshot!(params = {}) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/smartshot/screenshot.rb', line 19 def take_screenshot!(params = {}) = { full: true, output: 'screenshot.png', url: 'http://ca.ios.ba', wait_for_element: 'body', frames_path: [] }.merge(params) begin visit .delete(:url) inside_frames .delete(:frames_path) do [.delete(:wait_for_element)].flatten.each do |element| page.find element end end timeout = .delete(:sleep) sleep timeout unless timeout.nil? page.driver.save_screenshot(.delete(:output), ) rescue => e raise SmartshotError.new("Error: #{e..inspect}") end end |