in reply to Clicking a checkbox using www::mechanize
geekgrrl and nmcfarl are correct about Javascript, but your tick() usage is wrong. You need to pass the value as the second arg:
Here are two test scripts for you, the first is a CGI script and the second is a W::M bot that queries the CGI script and tests its "return" value.$agent->tick($chk_visa,'Visa');
Bot script:use CGI::Pretty qw(:standard); if (param('chklstCC:0')) { print header, param('chklstCC:0'); } else { print header,start_html,start_form, checkbox_group( -name=>'chklstCC:0', -values=>[qw(Visa MasterCard Discover)], ), submit('go'), end_form, end_html, ; }
use WWW::Mechanize; use Test::More qw(no_plan); my $bot = WWW::Mechanize->new(); $bot->get('http://localhost/path/to/cgi_script.cgi'); $bot->tick('chklstCC:0','Visa'); $bot->submit; is( $bot->content(), 'Visa', "Got expected content" );
UPDATE: (a reply) No value? Then those aren't "real" checkboxes, are they? Value is a required attribute for the checkbox input type. I gave you correct usage for correct HTML. The checkboxes you are trying to check rely on Javascript, and you will too if you want this bot to work. I have used Javascript with success before, code is at (jeffa) Re: Encrypt web files!. Good luck, you're gonna need it. :/
jeffa
L-LL-L--L-LL-L--L-LL-L-- -R--R-RR-R--R-RR-R--R-RR B--B--B--B--B--B--B--B-- H---H---H---H---H---H--- (the triplet paradiddle with high-hat)
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: Clicking a checkbox using www::mechanize
by Anonymous Monk on May 11, 2004 at 20:18 UTC | |
|
Re: Re: Clicking a checkbox using www::mechanize
by Anonymous Monk on May 11, 2004 at 20:01 UTC |