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
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---