Untested, but this will try to attach every two seconds forever:
####################
def get_popup
begin
ie.attach(:title, "My Window)
rescue
sleep 2
get_popup
end
end
######################
You could put your counter in there with an exit clause.
On 5/9/07, Dhrubojyoti Biswas <[EMAIL PROTECTED]> wrote:
> Time and again I have faced issues where the WATIR attach method, that
> returns a handle to a popup window, has misbehaved.
>
> Specifically I have noticed this on somewhat slow connections. In Cases
> where the pop up windows take some time to get rendered on the client
> machine, the attach method throws an exception saying that it coud not find
> the window.
>
> I have been using WATIR 1.4.x extensively for my projects.
>
> I came up with this small solution that would grab the window no matter how
> slow the connection is. Can someone think of a better way to do it, or does
> this solution look viable?
>
> def GTools.waitForPopUp(ie, title)
> iePopUp = ''
> popupGrabber = false
> popupGrabberCounter = 0
> #I'll wait for the popup to come up... I'll make some iterations and
> then I'll stop iterating
> #Ideally the number of iterations to be made should be made
> configurable (number 21)
> while(popupGrabber == false && popupGrabberCounter <= 21)
> begin
> rxp = Regexp.new (title)
> iePopUp = Watir::IE.attach(:title, rxp)
> # I will reach this point only if attach does not throw an
> exception
> popupGrabber = true
> rescue Exception => ex
> # If the code reaches this block it means that the pop up window
> that
> # u were trying to grab using attach was not served up by the
> WebServer
> # set the Grabber flag to false and return back into the loop
> print "Rescued Exception\n"
> popupGrabber = false
> end
> popupGrabberCounter = popupGrabberCounter + 1
> if(popupGrabberCounter >= 21)
> raise GUIException("PopUp Timeout.... No PopUp Window having
> title " + title + " was found")
> end
> return iePopUp
> end
>
> When I use this workaround method I have noticed that the code enters the
> rescue block quite anumber of times before it attaches successfully to the
> window.
>
> I am eager to know if there is a better way to do this?
>
> --
> Dhruv
>
>
> _______________________________________________
> Wtr-general mailing list
> [email protected]
> http://rubyforge.org/mailman/listinfo/wtr-general
>
_______________________________________________
Wtr-general mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/wtr-general