Skip to main content

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>