GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  WWW::MECHANIZE::TREEBUILDER (3)

.ds Aq ’

NAME

WWW::Mechanize::TreeBuilder - combine WWW::Mechanize and HTML::TreeBuilder in nice ways

CONTENTS

SYNOPSIS



 use Test::More tests => 2;
 use Test::WWW::Mechanize;
 use WWW::Mechanize::TreeBuilder;
 # or
 # use WWW::Mechanize;
 # or
 # use Test::WWW::Mechanize::Catalyst MyApp;

 my $mech = Test::WWW::Mechanize->new;
 # or
 #my $mech = Test::WWW::Mechanize::Catalyst->new;
 # etc. etc.
 WWW::Mechanize::TreeBuilder->meta->apply($mech);

 $mech->get_ok(/);
 is( $mech->look_down(_tag => p)->as_trimmed_text, Some text, It worked );



DESCRIPTION

This module combines WWW::Mechanize and HTML::TreeBuilder. Why? Because I’ve seen too much code like the following:



 like($mech->content, qr{<p>some text</p>}, "Found the right tag");



Which is just all flavours of wrong - its akin to processing XML with regexps. Instead, do it like the following:



 ok($mech->look_down(_tag => p, sub { $_[0]->as_trimmed_text eq some text })



The anon-sub there is a bit icky, but this means that anyone should happen to add attributes to the <p> tag (such as an id or a class) it will still work and find the right tag.

All of the methods available on HTML::Element (that aren’t ’private’ - i.e. that don’t begin with an underscore) such as look_down or find are automatically delegated to $mech->tree through the magic of Moose.

METHODS

Everything in WWW::Mechanize (or which ever sub class you apply it to) and all public methods from HTML::Element except those where WWW::Mechanize and HTML::Element overlap. In the case where the two classes both define a method, the one from WWW::Mechanize will be used (so that the existing behaviour of Mechanize doesn’t break.)

USING XPATH OR OTHER SUBCLASSES

HTML::TreeBuilder::XPath allows you to use xpath selectors to select elements in the tree. You can use that module by providing parameters to the moose role:



 with WWW::Mechanize::TreeBuilder => {
   tree_class => HTML::TreeBuilder::XPath
 };

 # or

 # NOTE: No hashref using this method
 WWW::Mechanize::TreeBuilder->meta->apply($mech,
   tree_class => HTML::TreeBuilder::XPath;
 );



and class will be automatically loaded for you. This class will be used to construct the tree in the following manner:



 $tree = $tree_class->new_from_content($req->decoded_content)->elementify;



You can also specify a element_class parameter which is the (HTML::Element sub)class that methods are proxied from. This module provides defaults for element_class when tree_class is HTML::TreeBuilder or HTML::TreeBuilder::XPath - it will warn otherwise.

AUTHOR

Ash Berlin <ash@cpan.org>

LICENSE

Same as Perl 5.8, or at your option any later version of Perl.
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 WWW::MECHANIZE::TREEBUILDER (3) 2014-10-27

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.