The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Build Status - Linux Build Status - Macos Build Status - Windows Kritika Analysis Status Coverage Status CPAN version

NAME

Mojo::Transaction::HTTP::Role::Mechanize - Mechanize Mojo a little

SYNOPSIS

  use Mojo::UserAgent;
  use Mojo::Transaction::HTTP::Role::Mechanize;

  my $ua = Mojo::UserAgent->new;
  my $tx = $ua->get('/')->with_roles('+Mechanize');

  # call submit immediately
  my $submit_tx = $tx->submit('#submit-id', username => 'fry');
  $ua->start($submit_tx);

  # first extract form values
  my $values = $tx->extract_forms->first->val;
  $submit_tx = $tx->submit('#submit-id', counter => $values->{counter} + 3);
  $ua->start($submit_tx);

DESCRIPTION

Role::Tiny based role to compose a form submission "trait" into Mojo::Transaction::HTTP.

METHODS

Mojo::Transaction::HTTP::Role::Mechanize implements the following method.

extract_forms

  $collection = $tx->extract_forms;

Returns a Mojo::Collection of Mojo::DOM elements with activated Mojo::DOM::Role::Form that contains all the forms of the page.

submit

  # result using selector
  $submit_tx = $tx->submit('#id', username => 'fry');

  # result without selector using default submission
  $submit_tx = $tx->submit(username => 'fry');

  # passing hash, rather than list, of values
  $submit_tx = $tx->submit({username => 'fry'});

  # passing hash, rather than list, of values and a selector
  $submit_tx = $tx->submit('#id', {username => 'fry'});

Build a new Mojo::Transaction::HTTP object with "tx" in Mojo::UserAgent::Transactor and the contents of the form with the $id and merged values. If no selector is given, the first non-disabled button or appropriate input element (of type button, submit, or image) will be used for the submission.

AUTHOR

kiwiroy - Roy Storey kiwiroy@cpan.org

tekki - Rolf Stöckli tekki@cpan.org

lindleyw - William Lindley wlindley+remove+this@wlindley.com

LICENSE

This library is free software and may be distributed under the same terms as perl itself.

SEE ALSO

Mojo::DOM::Role::Form, Mojolicious.