The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Brownie - Browser integration framework inspired by Capybara

SYNOPSIS

OO-Style

  use Test::More;
  use Brownie::Session;

  # external server
  my $session = Brownie::Session->new(
      driver   => 'Mechanize',
      app_host => 'http://app.example.com:5000',
  );

  # PSGI app
  my $session = Brownie::Session->new(
      driver => 'Mechanize',
      app    => sub { ...(PSGI app)... },
  );

  # PSGI file
  my $session = Brownie::Session->new(
      driver => 'Mechanize',
      app    => 'app.psgi',
  );

  $session->visit('/');
  is $session->title => 'Some Title';

  $session->fill_in('User Name' => 'brownie');
  $session->fill_in('Email Address' => 'brownie@example.com');
  $session->click_button('Login');
  like $session->source => qr/Welcome (.+)/;

  $session->fill_in(q => 'Brownie');
  $session->click_link_or_button('Search');
  like $session->title => qr/Search result of Brownie/i;

  done_testing;

DSL-Style

  use Brownie::DSL;

  # external server
  Brownie->driver('Mechanize');
  Brownie->app_host('http://app.example.com:5000');

  # PSGI app
  Brownie->driver('Mechanize');
  Brownie->app(sub { ...(PSGI app)... });

  # psgi file
  Brownie->driver('Mechanize');
  Brownie->app('app.psgi');

  visit('/');
  is page->title, 'Some Title';

  fill_in('User Name' => 'brownie');
  fill_in('Email Address' => 'brownie@example.com');
  click_button('Login');
  like page->source => qr/Welcome (.+)/;

  fill_in(q => 'Brownie');
  lick_link_or_button('Search');
  like page->title => qr/Search result of Brownie/i;

  done_testing;

DESCRIPTION

Brownie is browser integrtion framework. It is inspired by Capybara (Ruby).

VOCABULARY

  • visit($url)

  • current_url

  • current_path

  • title

  • source

  • screenshot($filename)

  • click_link($locator)

  • click_button($locator)

  • click_on($locator)

  • fill_in($locator, $value)

  • choose($locator)

  • check($locator)

  • uncheck($locator)

  • select($locator)

  • unselect($locator)

  • attach_file($locator, $filename)

  • execute_script($javascript)

  • evaluate_script($javascript)

  • find($locator)

  • all($locator)

AUTHOR

NAKAGAWA Masaki <masaki@cpan.org>

LICENSE

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

SEE ALSO

Brownie::Session

Capybara