I am having a bit of difficulty getting my script to wait for a window to finish loading before attaching to it. Here's the original code:
----
$ie.link(:text, 'View Report').click
ie2 = IE.attach(:title, /View Report/)
# stuff happens
ie2.close
----
If I run it as above, I get the following error:
"Watir::Exception::NoMatchingWindowFoundException: Unable to locate a window with title of (?-mix:View Report)"
The problem seems to be that the Title bar initially has a URL displayed in it and then, after a while (random number of seconds), it updates to the correct <TITLE>. So the command will *eventually* work, but it will fail if it checks the window too soon.
I tried inserting a 'sleep' command between the first two lines above, but I can't account for how long it will take the window to finish loading.
I searched the message archives but I couldn't find anything that helps me tell the script to wait as long as it needs before trying to attach to the new window.
I tried making up combinations of functions to try and help me, but so far nothing has helped. For example, I tried working with commands like:
> IE.attach(:title, /View Report/).exists? # but this doesn't work as I'd like
and the ie.status() method only applies when you can actually connect to the window first, so it doesn't help me either.
I thought about creating a series of nested begin-rescue-end blocks to catch and work with the exceptions, but I still couldn't quite figure out how to get it to wait the random amount of time required before trying to attach to the window.
Has anyone else encountered a similar problem before? Do you have any suggestions that might help?
Please let me know. Thanks.
Paul.
_______________________________________________ Wtr-general mailing list [email protected] http://rubyforge.org/mailman/listinfo/wtr-general
