SeeTestAutomation- XPath Operators & Functions
Please note that this tool is classified as a Legacy tool. We recommend transitioning to our updated solutions to maintain optimal performance and security in your workflows. For more information on this matter, please reach out to technical support .
XPath Operators
-
Boolean operators: and, or, not() - Simple logic that can be integrated with the different properties used.
Example: Using the query xpath=//*[@hint='Username' or @hint='Password'] will give us username text field and password text field.
If we surround the properties with not() - xpath=//*[not(@hint='Username' or @hint='Password')] we will get all the elements in this page except for the text fields.
b
-
A union operator: I - forms the union of two XPath expressions.
-
Arithmetic operators: +, -, *, div (divided), mod (Returns the remainder of a division)
-
Comparison operators: =, !=, >, <, <=, >=
Example: If we want to get only the elements whose width is at least 8 times their height we can use this query - xpath=//*[@width div @height > 8]
XPath Functions
-
Contains(string, string)**** - Use this function if you are looking for a part of a value, very useful in cases of partial text.
Example: You can use the query xpath=//*[contains(@text,'Your balance is:')] in order to identify the element that holds the balance value, regardless of the value itself which can change from test to test.
-
starts-with(string, string) - For finding elements that start with a specific string.
Example: xpath=//*[starts-with(@text, "M")] This query will return all elements with text property that start with "M":
-
concat**(string, string, string*)****** - Used to connect two strings or more.
-
substring(string, start, length) - Returns a part of a string, for example substring('string', 2, 4) returns "trin".
-
substring-after**(string, string)****** - Returns the part of the string that exists after some specific characters in the string.
-
substring-before****(string, string)******** - Returns the part of the string that exists before some specific characters in the string.
Example: In order to get all apps that use more then 20 MB we will use substring-before function to extract the text before the decimal point - xpath=//*[substring-before(@text, '.')>20]/../*[@id='title']
-
string-length**(string) -****** Returns the string length.
-
normalize-space(string)**** - Remove all the whitespace from a string.
Example: In this query we get all app names with 19 or more characters with no consideration of whitespace - xpath=//*[string-length(normalize-space(@text))>=19]
-
translate(string, string, string) - You can use this function if you want to replace some specific characters in a string with other specific characters. For example "translate('string', 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" will return the string "STRING" and "translate('We want pizza', 'pizza', 'burger')" will return the string "We want burger".
Example: We want to get all elements that have a text property that contains a numeric value bigger than 1000000. You can notice that the numbers appear in this form: 10,00,000, In order for the query to work we use the translate function like this: xpath=//*[translate(@text, ',' ,'')>1000000] the function replaces ',' with '' (In fact - deletes them).
-
cmd:matches(string, string)**** - This is a special addition to XPath in SeeTest Automation. It is used in order to integrate regular expression with the XPath query.
Example: The query xpath=//*[cmd:matches(@text, "^[^\s]+\s+R.*")] will identify all elements with a text property whose second word starts with 'R'