use WWW::Mechanize::Firefox; my $mech = WWW::Mechanize::Firefox->new(autoclose => 0); $mech -> get("your own url"); my $count = 0; my $retries = 100; while ($retries-- and ! $mech->is_visible( xpath => '//*[@value="your own content"]' )) { $count++; print "count: $count\n"; sleep 1; #Do your login stuff here. if ($mech -> success()) { #Do stuff only once the login step succeeds. } } die "Timeout" unless $retries;