attribute
accepts a scalar name a parameter. It returns the initial value of the attribute with the supplied name.
Compare with the current value returned by property method.
browser
returns the browser connected with the element.
clear
clears any user supplied input from the element
click
sends a 'click' to the element. The browser will wait for any page load to complete or the session's
page_load duration to elapse before returning, which, by default is 5 minutes. The click method is also
used to choose an option in a select dropdown.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new(visible => 1)->go('https://ebay.com');
my $select = $firefox->find_tag('select');
foreach my $option ($select->find_tag('option')) {
if ($option->property('value') == 58058) { # Computers/Tablets & Networking
$option->click();
}
}
css
accepts a scalar CSS property name as a parameter. It returns the value of the computed style for that
property.
find
accepts an xpath expression <https://en.wikipedia.org/wiki/XPath> expression> as the first parameter and
returns the first element that matches this expression.
This method is subject to the implicit timeout.
use Firefox::Marionette();
use v5.10;
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
$div->find('//input[@id="metacpan_search-input"]')->type('Test::More');
# OR in list context
my $div = $firefox->find_class('main-content');
foreach my $element ($div->find('//input[@id="metacpan_search-input"]')) {
$element->type('Test::More');
}
If no elements are found, a not found exception will be thrown. For the same functionality that returns
undef if no elements are found, see the has method.
find_id
accepts an id <https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id> as the first
parameter and returns the first element with a matching 'id' property.
This method is subject to the implicit timeout.
use Firefox::Marionette();
use v5.10;
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
$div->find_id('metacpan_search-input')->type('Test::More');
# OR in list context
my $div = $firefox->find_class('main-content');
foreach my $element ($div->find_id('metacpan_search-input')) {
$element->type('Test::More');
}
If no elements are found, a not found exception will be thrown. For the same functionality that returns
undef if no elements are found, see the has_id method.
find_name
This method returns the first element with a matching 'name' property.
This method is subject to the implicit timeout.
use Firefox::Marionette();
use v5.10;
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
$div->find_name('q')->type('Test::More');
# OR in list context
my $div = $firefox->find_class('main-content');
foreach my $element ($div->find_name('q')) {
$element->type('Test::More');
}
If no elements are found, a not found exception will be thrown. For the same functionality that returns
undef if no elements are found, see the has_name method.
find_class
accepts a class name <https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class> as the
first parameter and returns the first element with a matching 'class' property.
This method is subject to the implicit timeout.
use Firefox::Marionette();
use v5.10;
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
$div->find_class('form-control home-metacpan_search-input')->type('Test::More');
# OR in list context
my $div = $firefox->find_class('main-content');
foreach my $element ($div->find_class('form-control home-metacpan_search-input')) {
$element->type('Test::More');
}
If no elements are found, a not found exception will be thrown. For the same functionality that returns
undef if no elements are found, see the has_class method.
find_selector
accepts a CSS Selector <https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors> as the first
parameter and returns the first element that matches that selector.
This method is subject to the implicit timeout.
use Firefox::Marionette();
use v5.10;
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
$div->find_selector('input.home-metacpan_search-input')->type('Test::More');
# OR in list context
my $div = $firefox->find_class('main-content');
foreach my $element ($div->find_selector('input.home-metacpan_search-input')) {
$element->type('Test::More');
}
If no elements are found, a not found exception will be thrown. For the same functionality that returns
undef if no elements are found, see the has_selector method.
find_tag
accepts a tag name <https://developer.mozilla.org/en-US/docs/Web/API/Element/tagName> as the first
parameter and returns the first element with this tag name.
This method is subject to the implicit timeout.
use Firefox::Marionette();
use v5.10;
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
my $input = $div->find_tag('input');
# OR in list context
my $div = $firefox->find_class('main-content');
foreach my $element ($div->find_tag('input')) {
# do something
}
If no elements are found, a not found exception will be thrown. For the same functionality that returns
undef if no elements are found, see the has_tag method.
find_link
accepts a text string as the first parameter and returns the first link element that has a matching link
text.
This method is subject to the implicit timeout.
use Firefox::Marionette();
use v5.10;
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('container-fluid');
$div->find_link('API')->click();
# OR in list context
my $div = $firefox->find_class('container-fluid');
foreach my $element ($div->find_link('API')) {
$element->click();
}
If no elements are found, a not found exception will be thrown. For the same functionality that returns
undef if no elements are found, see the has_link method.
find_partial
accepts a text string as the first parameter and returns the first link element that has a partially
matching link text.
This method is subject to the implicit timeout.
use Firefox::Marionette();
use v5.10;
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('container-fluid');
$div->find_partial('AP')->click();
# OR in list context
my $div = $firefox->find_class('container-fluid');
foreach my $element ($div->find_partial('AP')) {
$element->click();
}
If no elements are found, a not found exception will be thrown. For the same functionality that returns
undef if no elements are found, see the has_partial method.
has
accepts an xpath expression <https://en.wikipedia.org/wiki/XPath> as the first parameter and returns the
first element that matches this expression.
This method is subject to the implicit timeout, which, by default is 0 seconds.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
if (my $element = $div->has('//input[@id="metacpan_search-input"]')) {
$element->type('Test::More');
}
If no elements are found, this method will return undef. For the same functionality that throws a not
found exception, see the find method.
has_id
accepts an id <https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id> as the first
parameter and returns the first element with a matching 'id' property.
This method is subject to the implicit timeout, which, by default is 0 seconds.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
if (my $element = $div->has_id('metacpan_search-input')) {
$element->type('Test::More');
}
If no elements are found, this method will return undef. For the same functionality that throws a not
found exception, see the find_id method.
has_name
This method returns the first element with a matching 'name' property.
This method is subject to the implicit timeout, which, by default is 0 seconds.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
if (my $element = $div->has_name('q')) {
$element->type('Test::More');
}
If no elements are found, this method will return undef. For the same functionality that throws a not
found exception, see the find_name method.
has_class
accepts a class name <https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/class> as the
first parameter and returns the first element with a matching 'class' property.
This method is subject to the implicit timeout, which, by default is 0 seconds.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
if (my $element = $div->has_class('form-control home-metacpan_search-input')) {
$element->type('Test::More');
}
If no elements are found, this method will return undef. For the same functionality that throws a not
found exception, see the find_class method.
has_selector
accepts a CSS Selector <https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors> as the first
parameter and returns the first element that matches that selector.
This method is subject to the implicit timeout, which, by default is 0 seconds.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
if (my $element = $div->has_selector('input.home-metacpan_search-input')) {
$element->type('Test::More');
}
If no elements are found, this method will return undef. For the same functionality that throws a not
found exception, see the find_selector method.
has_tag
accepts a tag name <https://developer.mozilla.org/en-US/docs/Web/API/Element/tagName> as the first
parameter and returns the first element with this tag name.
This method is subject to the implicit timeout, which, by default is 0 seconds.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('main-content');
if (my $element = $div->has_tag('input');
# do something
}
If no elements are found, this method will return undef. For the same functionality that throws a not
found exception, see the find_tag method.
has_link
accepts a text string as the first parameter and returns the first link element that has a matching link
text.
This method is subject to the implicit timeout, which, by default is 0 seconds.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('container-fluid');
if (my $element = $div->has_link('API')->click();
$element->click();
}
If no elements are found, this method will return undef. For the same functionality that throws a not
found exception, see the find_link method.
has_partial
accepts a text string as the first parameter and returns the first link element that has a partially
matching link text.
This method is subject to the implicit timeout, which, by default is 0 seconds.
use Firefox::Marionette();
my $firefox = Firefox::Marionette->new()->go('https://metacpan.org/');
my $div = $firefox->find_class('container-fluid');
if (my $element = $div->has_partial('AP')->click();
$element->click();
}
If no elements are found, this method will return undef. For the same functionality that throws a not
found exception, see the find_partial method.
IDENTIFIER
returns the web element identifier <https://www.w3.org/TR/webdriver/#elements>
is_enabled
returns true or false if the element is enabled.
is_selected
returns true or false if the element is selected.
is_displayed
returns true or false if the element is displayed.
new
returns a new element.
property
accepts a scalar name a parameter. It returns the current value of the property with the supplied name.
Compare with the initial value returned by attribute method.
rect
returns the current position and size of the element
send_keys
*** DEPRECATED - see type. ***
selfie
returns a File::Temp object containing a lossless PNG image screenshot of the element.
accepts the following optional parameters as a hash;
• hash - return a SHA256 hex encoded digest of the PNG image rather than the image itself
• full - take a screenshot of the whole document unless the first element parameter has been supplied.
• scroll - scroll to the element supplied
• highlights - a reference to a list containing elements to draw a highlight around
shadow_root
returns the element's ShadowRoot <https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot> as a
shadow root object or throws an exception.
use Firefox::Marionette();
use Cwd();
my $firefox = Firefox::Marionette->new()->go('file://' . Cwd::cwd() . '/t/data/elements.html');
$firefox->find_class('add')->click();
my $shadow_root = $firefox->find_tag('custom-square')->shadow_root();
foreach my $element (@{$firefox->script('return arguments[0].children', args => [ $shadow_root ])}) {
warn $element->tag_name();
}
shadowy
returns true if the element has a ShadowRoot <https://developer.mozilla.org/en-
US/docs/Web/API/ShadowRoot> or false otherwise.
use Firefox::Marionette();
use Cwd();
my $firefox = Firefox::Marionette->new()->go('file://' . Cwd::cwd() . '/t/data/elements.html');
$firefox->find_class('add')->click();
if ($firefox->find_tag('custom-square')->shadowy()) {
my $shadow_root = $firefox->find_tag('custom-square')->shadow_root();
warn $firefox->script('return arguments[0].innerHTML', args => [ $shadow_root ]);
...
}
This function will probably be used to see if the shadow_root method can be called on this element
without raising an exception.
switch_to_frame
switches to this frame within the current window.
tag_name
returns the relevant tag name. For example 'a' or 'input'.
text
returns the text that is contained by that element (if any)
type
accepts a scalar string as a parameter. It sends the string to this element, such as filling out a text
box. This method returns the browser to aid in chaining methods.
uuid
returns the browser generated UUID connected with this element.