Ranorex is a proprietary alternative to Selenium. To select an element, they’re using the so-called RanoreXPath. Both, RanoreXPath and XPath, are pretty similar in their syntax, but are different in following areas:
|Feature||RanoreXPath (Ranorex)||Xpath (Selenium)||Description|
|Text contains a certain pattern||/dom[@domain='federations.gfk.com']//*[@id~'email']||.//*[contains(@id,'email')]||RanorexPath uses ~ to start a Regex, which is a substitute for Xpath's contains()-function:
|Tab-Location||Prefix /dom[@page='FlexExample.html'] to recognize the browsertab.
||No prefix, as the browser-tab is selected by code:
|Ranorex doesn't need the prefix, but it's strongly recommanded to use it for two reasons:
1. Without the prefix, Ranorex climbs down each and every window to search for an element, which matches the RanoreXPath - and that may be very time-consuming!
2. Think of two opened browsers with elements recognized by the same RanoreXPath - those situations cause non-deterministic behaviour, which is hard to debug.
|Driver of the language-power||Regex||Functions||To cope with the special-cases of recognizing UI-elements, you need a powerful language.|
|Make the paths case-insensitive||i:||Translate()||Case-insensitivity in Xpath: http://stackoverflow.com/a/586260/1777526|
|Selecting the x-th element, that match the path||/dom[@domain~'mydomain']//div[@class='header']||(.//div[@class='header'])|
|quotes||only single quotes allowed||single and double quotes allowed|
|Multiple Element matches||Decides with a certain algorithm, which element will be selected||If more than one element match the XPath, the first in the DOM is selected|
|Return of text||The inner text of a certain element is returned||The concatenated text of all descendant elements is returned|