Are you sure you are traversing the DOM carefully? How about, for example, testing the return value of all those calls, e.g.: use strict;
use WWW::Mechanize::Firefox;
use Data::Dumper;
my $mech = WWW::Mechanize::Firefox->new();
$mech->get('http://117.247.176.82/VIEWDOCS.aspx');
$mech->autoclose_tab( 0 );
$mech->allow( javascript => 1 );
my @el = $mech->by_id('MainContent_ddldist');
@el or whoops('by_id','MainContent_ddldist',@el);
$el[0]->__event('mousedown');
or whoops('mousedown', $el[0]);
my $result = $mech->select( 'ctl00$MainContent$ddldist'=>'BN');
$result or whoops('select','ctl100$MainContent$ddldist', $result);
# etc...
sub whoops {
printf STDERR ('Error during %s:%s', shift(), "\n");
@_ and print STDERR dumper(@_);
exit 256;
}
Update: and if necessary also log the successful calls to STDOUTmy $globalLogLevel = 1;
# ...
my @el = $mech->by_id('MainContent_ddldist');
@el ? log('by_id','MainContent_ddldist',@el)
: whoops('by_id','MainContent_ddldist');
#...
sub log {
$globalLogLevel or return;
printf ('Success with %s:%s', shift(), "\n");
@_ and print dumper(@_);
}
|