On this page, find a list of the syntax expressions available. We’ll first cover axes and then attribute expressions.
For more detailed examples of applied RanoreXPaths, please refer to RanoreXPath examples.
Most of the examples on this page begin with /form
, the role of top-level applications. Normally, you would further specify this role with an attribute, for example, [@controlname='RxMainFrame']
for the Ranorex Studio Demo Application.
Axes
An axis represents a relationship to the context (current) node and is used to locate nodes relative to that node on the element tree. The context node is always the node before the axis.
All axes require further specification; they cannot stand alone. You can either specify a role (with or without a predicate) or use the any /*
or any optional /?
wildcards.
This does not apply to the abbreviations //
(descendant-or-self) and ..
(parent). This is explained under the respective axis.
List of axes
Syntaxchild
Description
Returns all children of the context node.
Example
/form/child::button
Syntaxdescendant
Description
Returns all descendants of the context node.
Example
/form/descendant::button
Returns all descendants of /form
that have the role button
.
Syntaxdescendant-or-self | //
Description
Returns the context node and all its descendants.
For the abbreviated syntax //
, further specification is optional.
Example
/form/descendant-or-self::button | /form//button
Only returns the descendants of /form
that have the role button
. /form
has a different role and therefore isn’t returned. If it had the role button
, it would also be returned.
Syntaxparent | ..
Description
Returns the parent of the context node.
In its abbreviated syntax, it must stand alone and does not accept further specification.
Examples
/form/button[@caption='OK']/parent::container
/form/button[@caption='OK']/..
Example 1: Returns the parent of the specified button element if it has the role container
.
Example 2: Returns the parent of the specified button element, regardless of its role.
Syntaxancestor
Description
Returns all ancestors of the context node.
Example
/form//button/ancestor::container
Finds all buttons that are descendants of /form
and then returns all ancestors of these buttons that have the role container
.
Syntaxancestor-or-self
Description
Returns the context node and all its ancestors.
Example
/form//button/ancestor-or-self::container
Finds all buttons that are descendants of /form
and then returns all ancestors of these buttons that have the role container
. If the context node also had the role container
, it would be returned as well.
Syntaxpreceding-sibling
Description
Returns all siblings before the context node.
Example
/form/button[@caption='OK']/preceding-sibling::button
Returns all UI elements that have the role button
are siblings of the specified button, and come before it.
Syntaxfollowing-sibling
Description
Returns all siblings after the context node.
Example
/form/button[@caption='OK']/following-sibling::button
Returns all UI elements that have the role button
are siblings of the specified button and come after it.
Attributes
You can also use regular expressions in RanoreXPaths. This is explained separately in Ranorex Studio Expert > Regular expressions in Ranorex Studio.
Syntax/form
Description
Top-level applications usually have the role form
. This syntax therefore identifies top-level applications.
Syntax/form[@title='Calculator']
Description
Identifies top-level applications that have the title Calculator.
Syntax/form[@title='Calculator' and @instance='2']
Description
Identifies the top-level application that has the title Calculator AND the instance attribute 2.
Syntax/form[@title='Calculator' or @class='SciCalc']
Description
Identifies top-level applications that have the title Calculator OR the class SciCalc.
Syntax/button
Description
Identifies UI elements that have the role button
.
Syntax/button[2]
Description
Identifies the second button (refers to the position in the element tree).
Syntax/button[-2]
Description
Identifies the second-to-last button (refers to the position in the element tree).
Syntax/button[@text='Exit']
Description
Identifies buttons with the text Exit.
Syntax/button[@text!='Exit']
Description
Identifies buttons whose text attribute is not equal to Exit.
Syntax/button[@text>'Warning']
Description
Identifies buttons whose text begins with Warning.
Syntax/button[@text<'Warning']
Description
Identifies buttons whose text ends in Warning.
Syntax/*[@text='Warning']
Description
Identifies any element with the text Warning.
Syntax/button[?'Warning']
Description
Identifies buttons that have any attribute that contains the string Warning.
Syntax/button[@text!=null()]
Description
Identifies buttons whose text attribute is not empty.
Syntax/progressbar[@value>='13.5']
Description
Identifies progress bars with a value greater than 13.5. Other possible operators: >
, <
, >=
, <=
.
Syntax/button[@text=$var]
Description
Identifies buttons whose text has the value of the variable $var
.
Syntax/button[$var]
Description
Identifies the first, second, third, etc. button, depending on the numeric value of $var
.
Syntax/dom//input[#'Search']
Description
Identifies an input element on a website (/dom
for document object model) with the unique identifier Search.
Functions
Syntax/table/row/cell[first()='True']
Description
Identifies the first cell of a row.
Syntax/table/row/cell[last()='True']
Description
Identifies the last cell of a row.
Syntax/table/row/cell[index()='2']
Description
Identifies the second cell (refers to the position in the element tree). The index()
function starts at 1.
Syntax/table/row/cell[pos()='2']
Description
Identifies the third cell (refers to the position in the element tree). The pos()
function starts at 0.
Syntax/form[x()>'100' and y()='100']
Description
Identifies top-level applications with screen coordinates greater than 100 pixels.
Syntax/form/button[cx()>'10' and cy()>'10']
Description
Identifies buttons with client coordinates (= an element’s coordinates relative to its parent) greater than 10 pixels.
Syntax/form[width()>'100' and height()>'100']
Description
Identifies top-level applications with a width and height greater than 100 pixels.
Syntax/dom/body/form/button[text()='Clear']
Description
Identifies buttons on a website with the innertext Clear. For web testing, the function text()
returns the value of the attribute innertext.
Syntax/dom/body/form/[@id=null()]
Description
Identifies website forms whose ID attribute is not zero.