oracular (3) WWW::Mechanize::FormFiller.3pm.gz

Provided by: libwww-mechanize-formfiller-perl_0.13-1_all bug

NAME

       WWW::Mechanize::FormFiller - framework to automate HTML forms

SYNOPSIS

       Form fields can be specified by name or by a regular expression. A field specified by name takes
       precedence over a matching regular expression.

       You are not limited to fixed form values - callbacks and interactive editing are also already provided :

         # Create a form filler that asks us for the password

         # Normally, the HTML would come from a LWP::UserAgent request
         my $html = "<html><body><form name='f' action='/login.asp'>
           <input type='text' name='login'>
           <input type='password' name='password' >
           <input type='submit' name=Login value='Log in'>
           <input type='hidden' name='session' value='0xDEADBEEF' />
         </form></body></html>";

         my $f = WWW::Mechanize::FormFiller->new();
         my $form = HTML::Form->parse($html,"http://www.fbi.gov/super/secret/");

         $f->add_filler( password => Interactive => []);
         $f->fill_form($form);

         my $request = $form->click("Login");

         # Now we have a complete HTTP request, which we can hand off to
         # LWP::UserAgent or (preferrably) WWW::Mechanize
         print $request->as_string;

DESCRIPTION

       The module is intended as a simple way to fill out HTML forms from a set of predetermined values. You set
       up the form filler with value elements, retrieve the HTML form, and let the form filler loose on that
       form.

       There are value classes provided for many tasks - fixed values, values to be queried interactively from
       the user, values taken randomly from a list of values and values specified through a callback to some
       Perl code.

       new %ARGS
           Creates a new instance. The %ARGS hash has two possible keys : "default", whose value should be an
           array reference consisting of the name of a "WWW::Mechanize::FormFiller::Value" subclass and the
           optional constructor values.  "values" must be an array reference, which contains array and "Files",
           which takes an array reference to the filenames to watch.

           Example :

       add_filler NAME, CLASS, @ARGS
           Adds a new value to the list of filled fields. "NAME" is the name of the form field, "CLASS" is the
           name of the class in the "WWW::Mechanize::FormFiller::Value" namespace - it must live below there !
           @ARGS is an optional array reference to the parameters that the subclass constructor takes.

       add_value NAME, VALUE
           Adds a new WWW::Mechanize::FormFiller::Value subclass to the list of filled fields. "NAME" is the
           name of the form field, "VALUE" is an object that responds to the interface of
           "WWW::Mechanize::FormFiller::Value".

       fill_form FORM
           Sets the field values in FORM to the values returned by the "WWW::Mechanize::FormFiller::Value"
           elements. FORM should be of type HTML::Forms or respond to the same interface.

       fillout @ARGS
           This is a very dwimmy routine that allows you to intuitively set up values and fill out a form, if
           needed. It works as both a constructor and a method. The parameters are decoded according to the
           following examples :

             $filler = WWW::Mechanize::FormFiller->new();
             $filler->fillout(
               # For the the simple case, assumed 'Fixed' class,
               name => 'Mark',

               # With an array reference, create and fill with the right kind of object.
               widget_id => [ 'Random', (1..5) ],
             );

             $filler = WWW::Mechanize::FormFiller->new();
             $filler->fillout(
               # If the first parameter isa HTML::Form, it is
               # filled out directly
               $form,
               name => 'Mark',
               motto => [ 'Random::Word', size => 5 ],
             );

             # This works as a direct constructor as well
             WWW::Mechanize::FormFiller->fillout(
               $form2,
               name => 'Mark',
               motto => [ 'Random::Word', size => 5 ],
             );

   Value subclasses
       The following WWW::Mechanize::FormFiller::Value subclasses are currently distributed :

       WWW::Mechanize::FormFiller::Value::Callback
       WWW::Mechanize::FormFiller::Value::Default
       WWW::Mechanize::FormFiller::Value::Fixed
       WWW::Mechanize::FormFiller::Value::Interactive
       WWW::Mechanize::FormFiller::Value::Keep
       WWW::Mechanize::FormFiller::Value::Random
       WWW::Mechanize::FormFiller::Value::Random::Word
       WWW::Mechanize::FormFiller::Value::Random::Chars
       WWW::Mechanize::FormFiller::Value::Random::Date

   EXPORT
       None by default.

   COPYRIGHT AND LICENSE
       This library is free software; you can redistribute it and/or modify it under the same terms as Perl
       itself.

       Copyright (C) 2002,2003 Max Maischein

AUTHOR

       Max Maischein, <corion@cpan.org>

       Please contact me if you find bugs or otherwise improve the module. More tests are also very welcome !

       Bug reports are best done via RT at https://rt.cpan.org

SEE ALSO

       WWW::Mechanize,WWW::Mechanize::Shell,WWW::Mechanize::FormFiller::Value