lib/watirsplash/frameworks/watir.rb in watirsplash-2.4.2 vs lib/watirsplash/frameworks/watir.rb in watirsplash-2.4.3

- old
+ new

@@ -1,8 +1,8 @@ -WatirSplash::Frameworks::Helper.load_gems "watir", "win32/screenshot" +WatirSplash::Frameworks::Helper.load_gems "watir-classic", "win32/screenshot" require "watirsplash/mini_magick_patch" -require "watir/ie" +require "watir-classic/ie" # patches for Watir module Watir class IE #:nodoc:all alias_method :_initialize, :initialize @@ -22,36 +22,32 @@ class Element # saves a file with the browser # # clicking the button opens a browser's save as dialog and saves the file document.pdf - # button(:id => "something").download("c:/document.pdf") # => c:/document.pdf + # button(:id => "something").save_as("c:/document.pdf") # => c:/document.pdf # # * raises an exception if saving the file is unsuccessful # * returns saved file path def save_as(file_path) path = Pathname.new(file_path) raise "path to #{file_path} has to be absolute!" unless path.absolute? self.click_no_wait - RAutomation::Window.new(:title => "File Download").button(:value => "&Save").click - save_as_window = RAutomation::Window.new(:title => "Save As") + browser_window = page_container.rautomation + + if page_container.class.version.to_i >= 9 + browser_window.child(:title => "Windows Internet Explorer").button(:value => "Save &as").click + else + browser_window.child(:title => "File Download").button(:value => "&Save").click + end + + save_as_window = browser_window.child(:title => "Save As") save_as_window.text_field(:class => "Edit", :index => 0).set(WatirSplash::Util.file_native_path(file_path)) save_as_window.button(:value => "&Save").click Wait.until {File.exists?(file_path)} file_path - end - end - - class FileField < InputElement - def set(file_path) - raise "#{file_path} has to exist to set!" unless File.exists?(file_path) - assert_exists - self.click_no_wait - window = RAutomation::Window.new(:title => /choose file( to upload)?/i) - window.text_field(:class => "Edit", :index => 0).set(WatirSplash::Util.file_native_path(file_path)) - window.button(:value => "&Open").click end end end