Sha256: ff4236253cbeab2c948500f4c085373e6f344202be04bc83c2f801ff086fa050

Contents?: true

Size: 850 Bytes

Versions: 4

Compression:

Stored size: 850 Bytes

Contents

require "tmpdir"
require "base64"
require "win32/screenshot"

module Watir
  # Returned by {IE#screenshot}.
  class Screenshot
    def initialize(browser_hwnd)
      @hwnd = browser_hwnd
    end

    # Save screenshot to the file.
    #
    # @param [String] path path to the image.
    def save(path)
      screenshot.write(path)
    end

    # @return [String] image in png format.
    def png
      path = File.expand_path "temporary-image-#{Time.now.to_i}.png", Dir.tmpdir
      save path
      File.open(path, "rb") {|file| file.read}
    ensure
      File.delete path rescue nil
    end

    # @return [String] {#png} image formatted as base64.
    def base64
      Base64.encode64 png
    end

    private

    def screenshot
      ::Win32::Screenshot::Take.of(:window, :hwnd => @hwnd)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
watir-classic-3.7.0 lib/watir-classic/screenshot.rb
watir-classic-3.6.0 lib/watir-classic/screenshot.rb
watir-classic-3.5.0 lib/watir-classic/screenshot.rb
watir-classic-3.4.0 lib/watir-classic/screenshot.rb