Class: Gnawrnip::Screenshot
- Inherits:
-
Object
- Object
- Gnawrnip::Screenshot
- Defined in:
- lib/gnawrnip/screenshot.rb
Class Method Summary collapse
- .session ⇒ Object
- .shot ⇒ Tempfile
-
.take(wait_second = Capybara.default_max_wait_time) ⇒ Tempfile
Screenshot of current capybara session.
Class Method Details
.session ⇒ Object
44 45 46 |
# File 'lib/gnawrnip/screenshot.rb', line 44 def session Capybara.current_session end |
.shot ⇒ Tempfile
51 52 53 54 55 56 |
# File 'lib/gnawrnip/screenshot.rb', line 51 def shot Tempfile.open(['gnawrnip', '.png']) do |fp| session.save_screenshot(fp.path) fp end end |
.take(wait_second = Capybara.default_max_wait_time) ⇒ Tempfile
Screenshot of current capybara session
When browser is still loading page, raise follow exception (maybe…)
Selenium::WebDriver::Error::UnknownError:
Could not take screenshot of current page - TypeError: c is null
So, to retry during wait_second
seconds.
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/gnawrnip/screenshot.rb', line 24 def take(wait_second = Capybara.default_max_wait_time) start_time = Time.now begin shot rescue Capybara::NotSupportedByDriverError => e raise e rescue => e if (Time.now - start_time) < wait_second sleep(0.3) retry end $stderr.puts "WARNING: Timeout!! Can't take screenshot" $stderr.puts " #{e}" nil end end |