Module: OnlyofficeWebdriverWrapper::WebdriverScreenshotHelper
- Included in:
- WebDriver
- Defined in:
- lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_screenshot_helper.rb
Overview
Working with screenshots
Instance Method Summary collapse
- #get_screenshot(path_to_screenshot = "#{screenshot_folder}/#{StringHelper.generate_random_string}.png") ⇒ Object
- #get_screenshot_and_upload(path_to_screenshot = "#{screenshot_folder}/#{StringHelper.generate_random_string}.png") ⇒ Object
-
#screenshot_folder ⇒ String
Location of screenshot to take.
- #webdriver_screenshot(screenshot_name = SecureRandom.uuid) ⇒ Object
Instance Method Details
#get_screenshot(path_to_screenshot = "#{screenshot_folder}/#{StringHelper.generate_random_string}.png") ⇒ Object
29 30 31 32 33 34 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_screenshot_helper.rb', line 29 def get_screenshot(path_to_screenshot = "#{screenshot_folder}/#{StringHelper.generate_random_string}.png") screenshot_folder = File.dirname(path_to_screenshot) FileUtils.mkdir_p(screenshot_folder) unless File.directory?(screenshot_folder) @driver.save_screenshot(path_to_screenshot) OnlyofficeLoggerHelper.log("get_screenshot(#{path_to_screenshot})") end |
#get_screenshot_and_upload(path_to_screenshot = "#{screenshot_folder}/#{StringHelper.generate_random_string}.png") ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_screenshot_helper.rb', line 10 def get_screenshot_and_upload(path_to_screenshot = "#{screenshot_folder}/#{StringHelper.generate_random_string}.png") begin get_screenshot(path_to_screenshot) cloud_screenshot = OnlyofficeS3Wrapper::AmazonS3Wrapper.new.upload_file_and_make_public(path_to_screenshot, 'screenshots') File.delete(path_to_screenshot) if File.exist?(path_to_screenshot) OnlyofficeLoggerHelper.log("upload screenshot: #{cloud_screenshot}") return cloud_screenshot rescue Errno::ENOENT => e begin @driver.save_screenshot(path_to_screenshot) OnlyofficeLoggerHelper.log("Cant upload screenshot #{path_to_screenshot}. Error: #{e}") rescue Errno::ENOENT => e @driver.save_screenshot("tmp/#{File.basename(path_to_screenshot)}") OnlyofficeLoggerHelper.log("Upload screenshot to tmp/#{File.basename(path_to_screenshot)}. Error: #{e}") end end path_to_screenshot end |
#screenshot_folder ⇒ String
Returns location of screenshot to take.
6 7 8 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_screenshot_helper.rb', line 6 def screenshot_folder '/tmp/screenshot/WebdriverError' end |
#webdriver_screenshot(screenshot_name = SecureRandom.uuid) ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/onlyoffice_webdriver_wrapper/webdriver/webdriver_screenshot_helper.rb', line 36 def webdriver_screenshot(screenshot_name = SecureRandom.uuid) begin link = get_screenshot_and_upload("#{screenshot_folder}/#{screenshot_name}.png") rescue Exception => e OnlyofficeLoggerHelper.log("Error in get screenshot: #{e}. Trying to get headless screenshot") if @headless.headless_instance.nil? system_screenshot("/tmp/#{screenshot_name}.png") begin link = OnlyofficeS3Wrapper::AmazonS3Wrapper.new.upload_file_and_make_public("/tmp/#{screenshot_name}.png", 'screenshots') rescue Exception => e OnlyofficeLoggerHelper.log("Error in get screenshot: #{e}. System screenshot #{link}") end else @headless.take_screenshot("/tmp/#{screenshot_name}.png") begin link = OnlyofficeS3Wrapper::AmazonS3Wrapper.new.upload_file_and_make_public("/tmp/#{screenshot_name}.png", 'screenshots') rescue Exception => e OnlyofficeLoggerHelper.log("Error in get screenshot: #{e}. Headless screenshot #{link}") end end end "screenshot: #{link}" end |