in reply to WWW::Mechanize::Firefox trigger onchange event

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 STDOUT
my $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(@_); }

One world, one people