FWScript 控件属性

在一个控件的寻找路径中,会用到控件类型(ControlType)和控件属性名称(Property),斜杠’/’后面紧跟的为控件类型(window,menuitem),在方括号[]里面的紧跟@后面的为属性名称(classname,automationid)。

:/window[@classname=”notepad”]/?/menuitem[@automationid=”item 1”]

事实上,Windows针对所有的控件类型和属性名称都有固定的编号,控件从50000到50044, 属性名称从30000到30072,在FWScripts中,可以使用编号来进行识别,使用这种表达方式BizRunner处理起来速度更快些,如前述控件路径也可以表达为:

:/32[@12=”notepad”]/?/11[@11=”item 1”]

另外,通过使用FWAlias,也可以对路径进行简化,如上述路径的表达方式可以简化为:

:/window[@class=”notepad”]/?/menuitem[@id=”item 1”]
  • 获取控件的属性值
  • 控件属性别名

注意,控件类型、控件属性详见控件类型与属性列表

获取控件的属性值

如果一个变量的变量类型为控件(Element),则可以取出其属性值,格式如下:

代码描述
$Var.propertyproperty为控件对应的属性的名称,如$.name 取出该控件的名字,而$.classname 取出该控件的类名
$Var.*X控件Rectangle的 X 坐标,返回float变量
$Var.*Y控件Rectangle的 Y 坐标,返回float变量
$Var.*W控件Rectangle的宽度 Width,返回float变量
$Var.*H控件Rectangle的高度 Height,返回float变量
$Var.*R返回数据源变量,该数据源包含4列,分别为X、Y、Width和Height,如果$Var为元素集合变量,则返回多组数值

如果$Var为控件的集合,则返回一个数据源变量,该数据源包含1列,循环执行为每次从集合中取出一个控件,记录在变量$1中。

注意:尽管在微软的UIA接口中属性名称区分大小写,但在FWScripts中做了特殊的处理,属性名称不分大小写。

控件属性别名

PropertyAlias
automationidid
classnameclass
<< FWScript 控件识别FWScript 控件动作 >>