前面提到,在某些情况下,不得不使用适配器,属性和值的组合来唯一确定界面上的对象和控件。像标准的XPath一样,RanorexPath也实现了一些条件关系运算符号,常见的有and, or, !=,它们分别表示同时满足,任意满足,排除(不满足)的条件。
例如/form[@title=’Calculator’ and @instance=’2′] 匹配满足title是Calculator并且instance是2的form。
而/form[@title=’Calculator’ or @class=’SciCalc’]将匹配title是Calculator或者class是SciCalc的任意form。
最后/form/button[@text!=’7′]会匹配text不是7的所有父对象是form的button对象。
除了这三种条件关系运算符外,RanoreXPath还支持=,>, <, >=, <=等比较符。 在属性和值的表达上RanoreXPath还支持变量,正则表达式,另外对象的位置信息也可以作为属性来进行限定。 下面是Ranorex官方指南上的一些例子: /form/button[-2] identies the second-to-last button in the application /form/button[@text~’^7′] identies a button using a RanoreXPath with Regular Expression /form/button[location.x=100] identies a button with a location.x value of ‘100’ using the cascaded get function of the x value of the location attribute /form/button[?’add’] identies button with any attribute containing the substring add (case-insensitive) /form/progressbar[@Value>=13.5] identies a progress bar with value greater than or equal 13.5 (following comparison operators are available also: >, <=, <)
/form[@title=$var] identies a top level application with title attribute value set to value stored in variable $var
/dom//input[#’search’] identies an input element on a web document with unique id ‘search’ (supported for web testing)
请注意,在属性和值的限定表达式中,?现在就是正则表达式的用法了。