Custom Attributes in WebSpy
Consider sample web application http://www.libraryinformationsystem.org/react-js
Let's see how the DOM node for the Password
input looks like in the Spy:
It contains the placeholder
attribute. However XPath is built using the id
. Sometimes we want to use such an attribute for XPath generation and for Learn.
Open the Web Spy Settings.
By default Include DOM Attributes is empty. This means two things:
1. Use all attributes in the Spy Tree.
2. Use default attributes (id
, name
, for
, label
) for the XPath generation (xpath_min
and xpath_index
).
Let's change it to placeholder,id
:
Now get snapshot again (Ctrl+G
) and select the same element (Ctrl+T
).
We can see that XPath generator used the placeholder
attribute. Its logic is following:
- If XPath with
placeholder
is sufficient then only one attribute is used. - If there is no
placeholder
then id
attribute is used by XPath generator (since we specified placeholder,id
as a filter). - If there is
placeholder
, but it does not produce unique XPath and there is also an id
then both placeholder
and id
are used. - If no XPath is produced that way, then
xpath_full
(having no attributes but full path) is used.
If you want to use custom attributes for the Learn, then you may specify xpath_min
as a default XPath:
DOM Attribute Include Filter specified in the options dialog is persistent. So you may fine-tune it for the specific application once and then get optimized XPath expressions every time when using Rapise Web Spy.