Hi all,

I got the answer how to click on 'ok' button.
But still i have two problems
---
that code is not working when im trying to run that code through the exe
file of that ruby file which is using that code.
and second one is i want to capure the text of that popup..


i tried this with no success

#----- js_dialog.rb -----

require 'win32ole'
require 'test/unit'
require 'test/unit/ui/console/testrunner'
#
# Use AutoIt to read and close Javascript dialog windows
#
module JavascriptDialog

   #
   # Target javascript dialogs with this window title
   #
   WINDOW_TITLE = "Microsoft Internet Explorer"

   class << self

       #
       # Return the text contained in a javascript dialog (e.g. an "alert()")
       # if such a dialog is present or appears within +wait_seconds+.
       #
       def text(wait_seconds = 1)
           # sleep 0.3
           autoit.WinWait(WINDOW_TITLE, nil, wait_seconds) if wait_seconds
           s = autoit.WinGetText(WINDOW_TITLE)
           s unless s == "1"
       end

       #
       # Close any active javascript dialog
       #
       def close
           autoit.WinClose WINDOW_TITLE
       end

       #
       # Press the "OK" button on a javascript dialog
       #
       def ok
           autoit.ControlClick(WINDOW_TITLE, "", "OK")
       end
       #
       # Press the "Cancel" button on a javascript dialog
       #
       def cancel
           autoit.ControlClick(WINDOW_TITLE, "", "Cancel")
       end
       #
       # Press the "Yes" button on a javascript dialog
       #
       def yes
           autoit.ControlClick(WINDOW_TITLE, "", "Yes")
       end
       #
       # Press the "No" button on a javascript dialog
       #
       def no
           autoit.ControlClick(WINDOW_TITLE, "", "No")
       end

       private

           #
           # Return an AutoIt COM object, creating it if it doesn't already
           # exist
           #
           def autoit
               unless defined? @@autoit
                   @@autoit = WIN32OLE.new("AutoItX3.Control")
               end
               @@autoit
           end
   end
end

module Test::Unit::Assertions
   #
   # Passes if a Javascript dialog appears within +wait_seconds+ and its
   # text matches the given (optional) pattern.
   #
   # Use like this:
   #  assert_js_dialog do
   #    watir_command_to_make_dialog_appear
   #  end
   # Or like this:
   #  assert_js_dialog /Text to find in the dialog/, "Cancel" do
   #    watir_command_to_make_dialog_appear
   #  end
   #
   def assert_js_dialog(pattern = //, action = "close", message = nil)
       _wrap_assertion do
           begin
               pipe = IO.popen("ruby exetry.rb #{action}")
               yield
               window_text = pipe.read rescue ""
               pipe.close
               unless window_text.empty?
                   assert_block(build_message(message,
                       "<?> not found in JavaScript dialog.", pattern)) do
                           window_text.match(pattern)
                   end
               else
                   raise Test::Unit::AssertionFailedError.new(
                       build_message(message, "No JavaScript window found."))
               end
           ensure
               pipe.close if pipe && !pipe.closed?
           end
       end
   end
end

# test - will close and print the text of an opened javascript dialog if
# run as "ruby js_dialog.rb"
if $0 == __FILE__
   action = ARGV.shift || "close"
   print JavascriptDialog.text || ""
   JavascriptDialog.send action
end


please help me regarding this..
Thanks IN advance

Regards
Shalini Gupta
_______________________________________________
Wtr-general mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-general

Reply via email to