Hi
 
Try this piece of code. I found this code on Waitr QA forums and I tried it in 
my suite. It worked
 
def startClicker( OK, waitTime = 3)   w = WinClicker.new   longName = 
$ie.dir.gsub("/" , "\\" )   shortName = w.getShortFileName(longName)   c = 
"start ruby #{shortName}\\watir\\clickJSDialog.rb #{button} #{waitTime} "   
puts "Starting #{c}"   w.winsystem(c)   w=nil end
 
Thanks & Regards,
Anupama> Date: Thu, 5 Apr 2007 00:59:09 -0500> From: [EMAIL PROTECTED]> To: 
wtr-general@rubyforge.org> Subject: Re: [Wtr-general] How do I click the "OK" 
button on a java alert?> > Hi all,> > I am new to ruby, and have searched these 
forums for answers, but have not found anything that seems to work or help me. 
(including links to FAQ's which do not appear to be available anymore)> > 
Situation:> I am writing ruby/watir scripts to automate tests against a 
website/application. On one page there are a date field and a "Search" 
button.after entering wrong dae in date field a popup alert opens and display 
message please enter valid date this dialog box also has a "OK" button.> > 
Problem:> I am unable to gain access to the java alert dialog to gain control 
of the button and click it. The modal dialog have a :title,"Microsofte Internet 
Explorer".but error comes unable to locate with window with title "Microsoft 
Internet Explorer" . So my tests "hang" while it waits for the button to be 
clicked before it can continue on.> > I also do not have access to the webcode 
(java code) to change it, but I know that the dialog is simply invoked with 
'alert("<text>")'.> > Things I have tried (with no success...)> $ie = 
IE.attach(:title, "Microsoft Internet Explorer")> $ie.button(:id, '2').click> > 
#> #require 'win32ole' # already included if you use 'require watir'> #> # 
Function to look for popups> #def check_for_popups> # autoit = 
WIN32OLE.new('<nowiki>AutoItX3</nowiki>.Control')> #> # Do forever - assumes 
popups could occur anywhere/anytime in your application.> #loop do> # Look for 
window with given title. Give up after 1 second.> # ret = 
autoit.<nowiki>WinWait</nowiki>('Popup Window Title', '', 1)> #> # If window 
found, send appropriate keystroke (e.g. {enter}, {Y}, {N}).> #if (ret==1) then 
autoit.Send('{enter}') end> #> # Take a rest to avoid chewing up cycles and 
give another thread a go.> # Then resume the loop.> #sleep(3)> #end> # end> #> 
# MAIN APPLICATION CODE> # Setup popup handler> # $popup = Thread.new { 
check_for_popups } # start popup handler> #at_exit { Thread.kill($popup) } > > 
##$ie.button(:id, 
"ctl00_MainContentPlaceHolder_btn_Search").fire_event("onclick")> ## w = 
WinClicker.new()> > #("#32770", "Microsoft Internet Explorer", > > ##handle = 
w.getWindowHandle("Microsoft Internet Explorer")> ##puts handle> > 
##w.makeWindowActive(handle)> #w.button(:value,"OK").click> 
##w.clickWindowsButton_hwnd(handle,"OK")> ##w.close > 
#ie2=IE.attach(:id,"00000fdc")> #$ie2.enter> #ie2.button(:name, 
add.wacTagAdd).getOLEObject.click> #w = WinClicker.new()> > 
#w.clickWindowsButton("Microsoft Internet Explorer", "OK" , maxWaitTime=2 )> #w 
= nil> #ie2.close > #puts "ent 1"> #$autoit = WIN32OLE.new('AutoItX3.Control') 
> #puts "ent 2"> # $autoit.WinWait("Microsoft Internet Explorer", "", 0)> #puts 
"ent 3"> #$autoit.WinActivate("Microsoft Internet Explorer")> #puts "ent 4"> 
#$autoit.send_keys('enter')> #$autoit.Winbutton(:name,"OK").click> 
#$autoit.ControlClick("Microsoft Internet Explorer", "", "OK")> 
#clickWindowsButton("Microsoft Internet Explorer" , "&OK" )> 
#$autoit.Send("enter")> #puts "ent 5"> #$autoit.WinWait("Microsoft Internet 
Explorer", "Look &in", 3) > > #$autoit.ControlSetText("Microsoft Internet 
Explorer", "", "", "#{$path}") > > #$autoit.ControlClick("Microsoft Internet 
Explorer", "", "&OK")> #$ie.link(:text, 'New Window').click_no_wait> 
#IE.attach_timeout = 1.0> #ie_new = IE.attach(:title, "Microsoft Internet 
Explorer")> #assert(ie_new.text.include?("OK"))> 
#ie_new.button(:title,"OK").click> #begin> > #autoit = 
WIN32OLE.new('AutoItX3.Control') > > #autoit.ControlClick("Microsoft Internet 
Explorer",'', '&OK')> > #autoit.ControlClick("Security Information",'', '&OK')> 
> #autoit.ControlClick("Security Alert",'', '&OK')> > #sleep(1)> > #rescue 
Exception => e> > #puts "error"> > #end> #hwnd = $ie.enabled_popup(5) > #puts 
"hwnd"> #if(hwnd) > > #w = WinClicker.new> > # w.makeWindowActive(hwnd)> 
#w.clickJSDialog_NewProcess(button = "OK" )> > > # puts hwnd.to_s> 
#$ie.Window("Microsoft Internet Explorer").button(:title, "OK").click> 
#pp=TC_PopUps.new> #pp.startClicker( "OK" , waitTime = 0.5)> Versions:> ruby 
1.8.4> watir 1.5.1.1127> ie 6> _______________________________________________> 
Wtr-general mailing list> Wtr-general@rubyforge.org> 
http://rubyforge.org/mailman/listinfo/wtr-general
_________________________________________________________________
Your friends are close to you. Keep them that way.
http://spaces.live.com/signup.aspx
_______________________________________________
Wtr-general mailing list
Wtr-general@rubyforge.org
http://rubyforge.org/mailman/listinfo/wtr-general

Reply via email to