Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^3: WWW::Mechanize::Firefox not filling out form

by Corion (Patriarch)
on Dec 10, 2010 at 18:59 UTC ( [id://876508]=note: print w/replies, xml ) Need Help??


in reply to Re^2: WWW::Mechanize::Firefox not filling out form
in thread WWW::Mechanize::Firefox not filling out form

I can't reproduce your problem.

My script, as posted above, does not do that, in fact, it never submits because that's commented out. To help me help you better, you could post a minimal version of your script that still reproduces the problem but is no longer than 20 lines. That would enable me, again, to reproduce your problem and maybe find a diagnosis that helps us determine the best approach to a solution.

  • Comment on Re^3: WWW::Mechanize::Firefox not filling out form

Replies are listed 'Best First'.
Re^4: WWW::Mechanize::Firefox not filling out form
by Anonymous Monk on Dec 10, 2010 at 19:07 UTC
    My apologies. Here's the code example. It inputs the text into the text box and selects the correct radio button and then Firefox goes to 100% usage on a single core.
    use strict; use WWW::Mechanize::Firefox; my $url = "http://tools.immuneepitope.org/tools/bcell/iedb_input"; my $agent = WWW::Mechanize::Firefox->new( activate => 1, autoclose => 0, ); my $method = 49; my $seq = "ARRRSFASDATRASDFSDARASDAGADFGASDRFREWFASCDSAGAREW"; $agent->get($url); if ( $agent->success() ) { sleep(5); print "Retrieved $url\n"; $agent->form_name('form1'); #$agent->set_fields( 'sequence' => $seq,'method' => $method); $agent->field( 'sequence' => $seq ); my $q = sprintf '//input[@name="method" and @value="%s"]', $method +; my $method_field = $agent->xpath( $q, single => 1 ); $agent->click( $method_field, synchronize => 0 ); sleep(5); $agent->submit(); }

      Ah - again, it's my error, as the API for ->click() does not want a hash but a hash reference when passing in elements and instructions for "blindly" clicking things. I've taken out your calls to sleep and added some warnings for the progress. The main change is from

      $agent->click($method_field, synchronize => 0 );
      to
      $agent->click({ dom => $method_field, synchronize => 0 });
      use strict; use WWW::Mechanize::Firefox; my $url = "http://tools.immuneepitope.org/tools/bcell/iedb_input"; my $agent = WWW::Mechanize::Firefox->new( activate => 1, autoclose => 0, ); my $method = 49; my $seq = "ARRRSFASDATRASDFSDARASDAGADFGASDRFREWFASCDSAGAREW"; $agent->get($url); if ( $agent->success() ) { #sleep(5); print "Retrieved $url\n"; $agent->form_name('form1'); #$agent->set_fields( 'sequence' => $seq,'method' => $method); $agent->field( 'sequence' => $seq ); my $q = sprintf '//input[@name="method" and @value="%s"]', $method +; my $method_field = $agent->xpath( $q, single => 1 ); warn "Method"; $agent->click({ dom => $method_field, synchronize => 0 }); #sleep(5); warn "Submitting"; $agent->submit(); }

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://876508]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (8)
As of 2024-04-19 08:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found