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