Selection wizard
00:04 Boozang introduces the Dom picker element selector
00:36 Editing data-driven tests with element selector
01:08 Boozang Element Selector makes editing paths easier
01:34 Boozang's Element Selector enhances visibility and control.
02:04 Boozang Element Selector enables easy selection of elements
02:32 Boozang's element selector is flexible and allows adding attributes
03:05 Boozang's smart path generation simplifies test creation.
03:34 Boozang introduces a new selector based on the word needed.
The DOM picker allows the user to precisely specify the element selector. During recording, Boozang will under normal circumstances be able to guess the best unique element path. In some cases, it´s desirable to override the predetermined element path.
Common cases when the element path needs to be changed
Wrong element picked
When clicking on the element, if the wrong element is highlighted, this means the path isn´t good. Try picking the element once more using the "Select element path" button. If the problem is still there, edit the element path by clicking the "Edit element path" button. This will open the DOM picker and allow you to adjust the policy for how the element is selected.
Element index > 0
If the element index > 0 it means that the element isn´t uniquely identified. This will be indicated by a warning. Use the DOM picker to make sure the checkbox icon turns green (meaning element index ==0).
Extract data
When extracting data, the data itself should not be used as an element selector. Use the DOM picker to the key of id or class, or other attributes.
Element path operation
The element path has the following operations. Boozang uses an expanded version of the jQuery selection standard to create a more human-readable code to identify elements. The basic pattern is that the lowercase jQuery standard operations, while uppercase operations are case-insensitive. All recordings will generate Uppercase operations by default. The operations that will be recorded for a test-case is marked by an asterisk (*
)
endContains (*)
: True if the selected element (case-insensitive) have the exact string alongside other strings
Ex:div:endContains(lws)
Yes:<div>lws ok</div>
No:<div>lwsok</div>
Yes:<div>lws <span>ok</span></div>
No: <div><span>lws</span></div>
endEquals (*)
: True if the selected element (case-insensitive) have the exact string
Ex:div:endEquals(lws)
Yes:<div>lws</div>
No: <div>lws ok</div>
No: <div>lwsok</div>
No: <div><span>lws</span></div>
equals
: True if the selected element or any of its children (case-sensitive) have the exact string alongside other strings
Ex:div:equals(lws)
Yes:<div><span>lws</span></div>
No: <div>lws ok</div>
Contains (*)
: True if the selected element or any its children (case-insensitive) have the exact string
Ex: div:Contains(lws)
Yes:<div><span>LWs ok</span></div>
No: <div>lwsok</div>
contains
: True if the selected element and all its children (case-sensitive) matches
Ex: div:contains(lws)
Yes:<div><span>lws ok</span></div>
Yes:<div>lwsok</div>
No: <div>lwok</div>
RowCol (*)
: Used to identify table cell (case-insensitive).
Ex: td:RowCol([value|name])
Yes:<tr><td></td><td>NAME</td></tr>
<tr><td>VALUE</td><td>1234</td></tr>
No: <tr><td></td><td>name</td></tr>
<tr><td>value1</td><td>1234</td></tr>
rowcol
: Used to identify a table cell (case-sensitive).
Ex: td:rowcol([value|name])
Yes:<tr><td></td><td>name</td></tr>
<tr><td>value</td><td>1234</td></tr>
No: <tr><td></td><td>name</td></tr>
<tr><td>VALUE</td><td>1234</td></tr>
near (*)
: Used to identify form input box based on labels (case-insensitive). The rule to match the first element before that shares a common parent element.
Ex: input:near(name)
Yes:<div><label>name: <input/></label></div>
Yes:<div><label>name: </label><input/></div>
Yes:<tr><td>Name</td><td><input/></td></tr>
No: <div>name</div><div><label>value</label><input/></div>
No: <div><div>name</div><div>value</div><input/></div>