sub Win32::IEAutomation::WaitforDoneTimeout { my( $self, $timeout ) = @_; $timeout ||= 0; my $starttime = time; my $agent = $self->{agent}; while( 1 ){ my $loaded = !!( $agent->Busy || $agent->document->readystate ne "complete" ); return "loaded" if $loaded; sleep 1; if( (time - $starttime) > $timeout ){ return "timedout"; } } return "nuclear explosion"; }