The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Weasel::FindExpanders - Mapping find patterns to xpath locators

VERSION

0.01

SYNOPSIS

  use Weasel::FindExpanders qw( register_find_expander );

  register_find_expander(
    'button',
    'HTML',
    sub {
       my %args = @_;
       $args{text} =~ s/'/''/g; # quote the quotes (XPath 2.0)
       return ".//button[text()='$args{text}']";
    });

  $session->find($session->page, "@button|{text=>\"whatever\"}");

FUNCTIONS

register_find_expander($pattern_name, $group_name, &expander_function)

Registers &expander_function as an expander for $pattern_name in $group_name.

Weasel::Session selects the expanders to be applied using its groups attribute.

expand_finder_pattern($pattern, $args, $groups)

Returns a string of concatenated (using xpath '|' operator) expansions.

When $groups is undef, all groups will be searched for pattern_name.

If the pattern doesn't match '*<pattern_name>|{<arguments>}', the pattern is returned as the only list/arrayref element.