test::html::content::noxpath(3pm) [debian man page]
Test::HTML::Content::NoXPath(3pm) User Contributed Perl Documentation Test::HTML::Content::NoXPath(3pm)NAME
Test::HTML::Content::NoXPath - HTML::TokeParser fallback for Test::HTML::Content
SYNOPSIS
# This module is implicitly loaded by Test::HTML::Content
# if XML::XPath or HTML::Tidy::Simple are unavailable.
DESCRIPTION
This is the module that gets loaded when Test::HTML::Content can't find its prerequisites :
XML::XPath
HTML::Tidy
EXPORT
Nothing. It stomps over the Test::HTML::Content namespace.
LICENSE
This code may be distributed under the same terms as Perl itself.
AUTHOR
Max Maischein, corion@cpan.org
SEE ALSO
Test::Builder,Test::Simple,HTML::TokeParser,Test::HTML::Lint,XML::XPath
perl v5.14.2 2011-11-17 Test::HTML::Content::NoXPath(3pm)
Check Out this Related Man Page
WWW::Mechanize::TreeBuilder(3pm) User Contributed Perl Documentation WWW::Mechanize::TreeBuilder(3pm)NAME
WWW::Mechanize::TreeBuilder - Module to optimize WWW::Mechanize and HTML::TreeBuilder use
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 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.
perl v5.10.1 2010-12-16 WWW::Mechanize::TreeBuilder(3pm)