技术开发 频道

Visual Studio2010测试:对象识别原理

  ControlType这个属性用于描述按什么类别来识别对象,识别原理之一的对象类别就是用这个表示

  而管作用的节点也就这么两个:

  AndCondition这个节点表示识别条件,他的子节点为PropertyCondition,表示具体识别条件,识别原理之二的关键标识属性就用这个表示,Descendants这个节点用于存放这个对象的子对象,识别原理之三的层级关系就是用这个表示。

  现在把上面自动生成的代码优化一下,把不必要的代码删除,并加上注释。然后再使用这段XML代码在录制生成器生成UIMap.designer.cs代码:

1   <Maps>
2     <UIMap Id="UIMap1">
3       <TopLevelWindows>
4         <!--表示较高级别的窗体,属性ControlType表示按类型“Window”类型识别对象,对应识别原理之一-->
5         <TopLevelWindow  ControlType="Window" Id="UI系统登录Window">
6           <!--TechnologyName标签没有实际作用,但是删除了会报错,因此保留,之后的也是-->
7           <TechnologyName>MSAA</TechnologyName>
8           <AndCondition Id="SearchCondition">
9             <!--表示窗体的关键标识属性,识别的时候寻找Name属性为“系统登录”的窗体,对应识别原理之二-->
10             <PropertyCondition Name="Name">系统登录</PropertyCondition>
11             <!--表示窗体的关键标识属性,识别的时候寻找ClassName属性为“WindowsForms10.Window”的窗体-->
12             <PropertyCondition Name="ClassName" Operator="Contains">WindowsForms10.Window</PropertyCondition>
13           </AndCondition>
14           <!--表示窗体的子对象,对应识别原理之三-->
15           <Descendants>
16             <!--UI对象,按类型“Window”类型识别-->
17             <UIObject ControlType="Window" Id="UITbx_uidWindow">
18               <TechnologyName>MSAA</TechnologyName>
19               <AndCondition Id="SearchCondition">
20                 <!--关键标识属性,ControlName属性为“Tbx_uid”的对象-->
21                 <PropertyCondition Name="ControlName">Tbx_uid</PropertyCondition>
22               </AndCondition>
23               <!--他的子对象-->
24               <Descendants>
25                 <!--UI对象,按类型“Edit”(文本框)类型识别-->
26                 <UIObject ControlType="Edit" Id="UITbx_uidEdit">
27                   <TechnologyName>MSAA</TechnologyName>
28                   <AndCondition Id="SearchCondition">
29                     <!--关键标识属性,Name属性为“密码 :”-->
30                     <PropertyCondition Name="Name">密码 :</PropertyCondition>
31                   </AndCondition>
32                   <Descendants />
33                 </UIObject>
34               </Descendants>
35             </UIObject>
36           </Descendants>
37         </TopLevelWindow>
38       </TopLevelWindows>
39     </UIMap>
40   </Maps>

 

0
相关文章