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

NAME

WWW::Selenium::Utils - helper functions for working with Selenium

SYNOPSIS

  use WWW::Selenium::Utils qw(generate_suite);

  # convert .wiki files to .html and create TestSuite.html
  generate_suite( test_dir => "/var/www/selenium/tests",
                  base_href => "/monkey",
                  verbose => 1,
                );

DESCRIPTION

This package contains utility functions for working with Selenium.

SUBROUTINES

generate_suite

generate_suite() will convert all .wiki files in selenium/tests to .html, and then create a TestSuite.html file that contains links to all the .html files.

The .wiki files are much easier to read and write. The format of .wiki files is like this:

  title
  | cmd | opt1 | opt2 |
  | cmd | opt1 |
  # comment

  # empty lines are ignored
  # comments are ignored too

  # you can include other wiki files too!  These files should not 
  # have a title.  I'll look for the file in the same directory
  # as the current .wiki file
  include "foo.incl"

  # if you don't want included files to also be converted to html,
  # then don't name them .wiki

Parameters:

test_dir

The path to the 'tests' directory inside selenium.

verbose

If true, informative messages will be printed.

base_href

Will prepend the given location to all locations for the open and assert/verifyLocation commands.

perdir

Will create a separate TestSuite.html for each directory under test_dir.

index

Will create a html index of all available TestSuite.html files found inside test_dir.

generate_suite() will parse a config file if present at either $ENV{SELUTILS_ROOT}/etc/selutils.conf or $Config{prefix}/etc/selutils.conf.

Supported options in selutils.conf and are the same as the generate_suite() arguments:

test_dir
perdir

INTEGRATION WITH SELENIUM RECORDER

Selenium Recorder is Firefox extension that records your actions as you browse. The result is a test file that can be played back in Selenium.

It's quite easy to make Selenium Recorder generate a syntax that is directly compatible with the wiki syntax suggested here.

In Selenium Recorder 0.6, you can update templates by opening the "Preferences" from the Extension panel of Firefox, and then clicking "Save". Adjust the input fields as follows:

Template for new test html file

 ${name}
 ${commands}

Template for command entries in the test html file

 | ${command.command} | ${command.target} | ${command.value} |

Template for comment entries in the test html file

 # ${comment.comment}

Further information about Selenium Recorder is available at:

  http://www.openqa.org/selenium-ide/

DIAGNOSTICS

If you set the verbose option to 1 when calling generate_suite, the function will print lines detailing what it is doing.

DEPENDENCIES

Uses CGI.

BUGS AND LIMITATIONS

There are no known bugs in this module. Please report problums to Luke Closs (cpan@5thplane.com). Patches are welcome.

AUTHOR

Luke Closs (cpan@5thplane.com)

LICENCE AND COPYRIGHT

Copyright (c) 2005 Luke Closs (cpan@5thplane.com). All rights reserved.

This module is free software; you can redstribute it and/or modify it under the same terms as Perl itself. See perlartistic.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.