Weasel::DriverRole - API definition for driver wrappers
0.04
use Moose; use Weasel::DriverRole; with 'Weasel::DriverRole'; ... # (re)implement the functions in Weasel::DriverRole
This module defines the API for all Weasel drivers to be implemented.
By using this role in the driver implementation module, an abstract method is implemented croak()ing if it's called.
Every session is associated with a driver instance. The started attribute holds a boolean value indicating whether or not the driver is ready to receive driver commands.
started
The value managed by the start and stop methods.
start
stop
This method returns the version number of the API which it fully implements.
Weasel::Session may carp (warn) the user about mismatching API levels in case a driver is coded against an earlier version than $Weasel::DriverRole::VERSION.
$Weasel::DriverRole::VERSION
This method allows setup of the driver. It is invoked before any web driver methods as per the Web driver methods section below.
This method allows tear-down of the driver. After tear-down, the start method may be called again, so the this function should leave the driver in a restartable state.
This function stops (if started) and starts the driver.
These are opaque values used by the driver to identify DOM elements.
Note: The driver should always accept an xpath locator as an id value as well as id values returned from earlier driver calls
Returns the _id values for the elements to be instantiated, matching the $locator using scheme.
$locator
scheme
Depending on array or scalar context, the return value is a list or an arrayref.
Note: there's no function to find a single element. That function is implemented on the Weasel::Session level.
Weasel::Session
Loads the page at $url into the driver's browser (browser emulator).
$url
The $url passed in has been expanded by Weasel::Session, prepending a registered prefix.
Returns a boolean value indicating whether the element indicated by $element_id is interactable (can be selected, clicked on, etc)
$element_id
The driver may interpret the 'poll_delay' in one of two ways: 1. The 'poll_delay' equals the number of seconds between the start of successive poll requests 2. The 'poll_delay' equals the number of seconds to wait between the end of one poll request and the start of the next
Since 0.03: Unless an on_timeout callback is provided, will die when the timeout has exceeded. Otherwise, call the provided callback.
on_timeout
die
Note: The user should catch inside the callback any exceptions that are thrown inside the callback, unless such exceptions are allowed to terminate further polling attempts. I.e. this function doesn't guard against early termination by catching exceptions.
Clicks on an element if an element id is provided, or on the current mouse location otherwise.
Double clicks on the current mouse location.
Returns the value of the attribute named by $attribute_name of the element indicated by $element_id.
$attribute_name
Writes a get_page_source of the browser's window to the filehandle $fh.
$fh
Returns the HTML content of the element identified by $element_id, the so-called 'innerHTML'.
DEPRECATED
Changes the value of the attribute named by $attribute_name to $value for the element identified by $element_id.
$value
Please use $self-get_attribute('selected')> instead.
$self-
Please use $self-set_attribute('selected', $value)> instead.
Takes a screenshot and writes the image to the file handle $fh.
Note: In the current version of the driver, it's assumed the driver writes a PNG image. Later versions may add APIs to get/set the type of image generated.
Simulates key input into the element identified by $element_id.
@keys is an array of (groups of) inputs; multiple multi-character strings may be listed. In such cases the input will be appended. E.g.
@keys
$driver->send_keys($element_id, "hello", ' ', "world");
is valid input to enter the text "hello world" into $element_id.
Note: Special keys are encoded according to the WebDriver spec. In case a driver implementation needs differentt encoding of special keys, this function should recode from the values found in WebDriver::KEYS() to the desired code-set
The name of the HTML tag identified by $element_id.
Weasel
Erik Huelsmann
Erik Huelsmann Yves Lavoie
Bugs can be filed in the GitHub issue tracker for the Weasel project: https://github.com/perl-weasel/weasel/issues
Please note that version 0.04 didn't have any functional changes; the version number increase served simply to split out the driver role into a separate dist.
The source code repository for Weasel is at https://github.com/perl-weasel/weasel
Community support is available through perl-weasel@googlegroups.com.
(C) 2016-2019 Erik Huelsmann
Licensed under the same terms as Perl.
To install Weasel::DriverRole, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Weasel::DriverRole
CPAN shell
perl -MCPAN -e shell install Weasel::DriverRole
For more information on module installation, please visit the detailed CPAN module installation guide.