Hi Shalini,
 
Here is the method to click the OK button on a java alert
 

#Put this method in your script:
def startClicker( button , 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
 
#Then call it right before you click the button (or whatever) thatcauses the 
javascript popup to display:
startClicker("OK" , 3)$ie.button("Submit").click
 
Thanks & Regards,
Anupama
> Date: Thu, 5 Apr 2007 00:59:09 -0500> From: [EMAIL PROTECTED]> To: 
> [email protected]> 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> 
> [email protected]> http://rubyforge.org/mailman/listinfo/wtr-general
_________________________________________________________________
Take a break and play crossword puzzles - FREE!
http://games.msn.com/en/flexicon/default.htm?icid=flexicon_ 
wlmemailtaglinemarch07
_______________________________________________
Wtr-general mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-general

Reply via email to