专注于功能测试,QTP测试,希望和大家交流! 共同学习!
MSN:jifenggold@163.com
下午写的控制WinTreeView结构的函数,希望和大家交流
上一篇 / 下一篇 2007-11-20 15:46:45 / 个人分类:QTP学习
查看( 371 ) /
评论( 2 )
现在测的软件有一个树型结构WinTreeView,树上节点控制右测窗口中的图层,眼睛控制是否可见,笔控制 可编辑,且节点相对位置可以变化(外部文件 控制)。问题:QTP只能识别到整个树对象,对节点可以通过GetItemProperty操作部分功能,且眼睛,笔的操作更是无能为力。结合网上朋友的思路,写了这个函数,希望和大家交流。
)T n0bk VV Cg7i0
}]*{)t!XB5SZ1u&okq0 Call Fun (Window("Geoway - [230-2]").WinTreeView("SysTreeView32"),"基本农田保护图斑",2) '传入节点的text,1=点击眼睛,2=点击笔或复选框软件测试网V Q5]B6EzK
'对图层眼睛,笔,复选框的控制函数软件测试网kBN)A Y W9i
Sub Fun(ObjStr,NodeName,Flog) 'ObjStr=树型结构的对象字符串;NodeName=操作的节点名;Flog=操作的对象(眼睛,笔,复选框)软件测试网'_2z/[T9J#R$U
Dim NodePath '节点的名字软件测试网,Ih`;p*U*?]5uJMi
Dim TreeArray() '存放树的节点l
(tYeg9C.X:e{0 Dim NodeCount '树结构的节点数
/I,zRVM"i0 软件测试网 d%`}i b
NodeCount=ObjStr.GetItemsCount
Dx+BamDV0
/G6oz$C#}!A%U\@l0 ReDim TreeArray(NodeCount) ' 动态定义数组,动态存放树的节点名称
-ZQ4` Zq0
4@6n*^;pX]+gXA4C0 For i=0 to NodeCount-1 '将节点存放到数组软件测试网 ?!P$o],QSAqQ_
软件测试网F"t'N]6xv
TreeArray(i)=cstr(ObjStr.GetItem(i))
2` l? v.t'lcLw0 软件测试网*Nn'os@ T.U.\#r
Next软件测试网,U*U(|R.v$_/BY~]*d
For j=0 to NodeCount-1 '检索节点位置软件测试网*r+@4zpN
8cA:T]ew'c6p0 If TreeArray(j)=cstr(NodeName) Then
,g#f.C y:I0 软件测试网2nHs,O)^!CQ
m=j软件测试网 E+c$x;M!h;u?@
#l)aV;KN_P|"h0 Exit for '检索到第一个匹配的节点跳出for循环
t$I-t/B\5D,_0
/Oq ].u%dc;@_`#uK0 End If软件测试网t6o$@$o}C
U!D5{gk]+Ay0 Next
/LeG\9I8OYio(P0
"o;v)nA c!EU:F#S\0 If m<24 Then '判断是否要拉动滚动条来控制图层软件测试网^9Ed w@&kE~
软件测试网e'vk"D!N"T}/B:m
Select Case Flog
j.eQ-{puLC[0
9C5_4qUUy \9|0 Case "1" '所选眼睛的坐标
e*z_4pf]e{0 x=45软件测试网1Pgt@v*v7\:{@
y=13+22*m
-E3H;iWy%?)R0 软件测试网P$R drH.^9yf
Case "2" '所选笔,复选框的坐标
kiHh@n0 x=65软件测试网ih)s0|6cI
y=13+22*m软件测试网Zx-d)h3Ez1I`G
Gup-p+f5|h~*^)] ^2q0 End Select
B4r S}#e?ajP8LT|0
`(yIv2D$\\`0 ObjStr.Click x,y '点击操作
4_m5j g-O0
O%`dA&Pa`0 else
$GTR.L}0 NodePath=ObjStr.GetItemProperty (m,"path") '得到所选节点的全路径软件测试网.fzWhq)kQ&B
软件测试网 U_f$l4u a| SS
ObjStr.Select NodePath
^'l'm(j,g'P(J-f4G8B!]$t0 Select Case Flog软件测试网5y"Yf)^ kN
#d;E5uhid;R0 Case "1" '所选眼睛的坐标软件测试网 ScD r)T5O\0O y
ObjStr.Click 47,541
PmUdy9p~O|(W0
/F,~;\;yhb"du0 Case "2" '所选笔,复选框的坐标
)T n0bk VV Cg7i0
}]*{)t!XB5SZ1u&okq0 Call Fun (Window("Geoway - [230-2]").WinTreeView("SysTreeView32"),"基本农田保护图斑",2) '传入节点的text,1=点击眼睛,2=点击笔或复选框软件测试网V Q5]B6EzK
'对图层眼睛,笔,复选框的控制函数软件测试网kBN)A Y W9i
Sub Fun(ObjStr,NodeName,Flog) 'ObjStr=树型结构的对象字符串;NodeName=操作的节点名;Flog=操作的对象(眼睛,笔,复选框)软件测试网'_2z/[T9J#R$U
Dim NodePath '节点的名字软件测试网,Ih`;p*U*?]5uJMi
Dim TreeArray() '存放树的节点l
(tYeg9C.X:e{0 Dim NodeCount '树结构的节点数
/I,zRVM"i0 软件测试网 d%`}i b
NodeCount=ObjStr.GetItemsCount
Dx+BamDV0
/G6oz$C#}!A%U\@l0 ReDim TreeArray(NodeCount) ' 动态定义数组,动态存放树的节点名称
-ZQ4` Zq0
4@6n*^;pX]+gXA4C0 For i=0 to NodeCount-1 '将节点存放到数组软件测试网 ?!P$o],QSAqQ_
软件测试网F"t'N]6xv
TreeArray(i)=cstr(ObjStr.GetItem(i))
2` l? v.t'lcLw0 软件测试网*Nn'os@ T.U.\#r
Next软件测试网,U*U(|R.v$_/BY~]*d
For j=0 to NodeCount-1 '检索节点位置软件测试网*r+@4zpN
8cA:T]ew'c6p0 If TreeArray(j)=cstr(NodeName) Then
,g#f.C y:I0 软件测试网2nHs,O)^!CQ
m=j软件测试网 E+c$x;M!h;u?@
#l)aV;KN_P|"h0 Exit for '检索到第一个匹配的节点跳出for循环
t$I-t/B\5D,_0
/Oq ].u%dc;@_`#uK0 End If软件测试网t6o$@$o}C
U!D5{gk]+Ay0 Next
/LeG\9I8OYio(P0
"o;v)nA c!EU:F#S\0 If m<24 Then '判断是否要拉动滚动条来控制图层软件测试网^9Ed w@&kE~
软件测试网e'vk"D!N"T}/B:m
Select Case Flog
j.eQ-{puLC[0
9C5_4qUUy \9|0 Case "1" '所选眼睛的坐标
e*z_4pf]e{0 x=45软件测试网1Pgt@v*v7\:{@
y=13+22*m
-E3H;iWy%?)R0 软件测试网P$R drH.^9yf
Case "2" '所选笔,复选框的坐标
kiHh@n0 x=65软件测试网ih)s0|6cI
y=13+22*m软件测试网Zx-d)h3Ez1I`G
Gup-p+f5|h~*^)] ^2q0 End Select
B4r S}#e?ajP8LT|0
`(yIv2D$\\`0 ObjStr.Click x,y '点击操作
4_m5j g-O0
O%`dA&Pa`0 else
$GTR.L}0 NodePath=ObjStr.GetItemProperty (m,"path") '得到所选节点的全路径软件测试网.fzWhq)kQ&B
软件测试网 U_f$l4u a| SS
ObjStr.Select NodePath
^'l'm(j,g'P(J-f4G8B!]$t0 Select Case Flog软件测试网5y"Yf)^ kN
#d;E5uhid;R0 Case "1" '所选眼睛的坐标软件测试网 ScD r)T5O\0O y
ObjStr.Click 47,541
PmUdy9p~O|(W0
/F,~;\;yhb"du0 Case "2" '所选笔,复选框的坐标