51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4050|回复: 7
打印 上一主题 下一主题

[求助] QTP9.0对WinTreeView控件的操作

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-11-2 15:19:53 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
有一个WinTreeView的对象,可以实现对各子节点的操作,现在在各子节点前加了一个眼睛,笔,分别控制图层的可见和可编辑状态,就像在photoshop中对图层控制一样的功能,且各个图层的相对位置随机可变。QTP捕获不到对这两个的操作,对象也抓不出来,请问各位达人有没有好的办法啊!

借助jmy_1981提供的思路以及查找的资料,自己写了一个函数,实现了对眼睛和笔以及复选框的操作。代码如下:


Call Fun (Window("Geoway - [230-2]").WinTreeView("SysTreeView32"),"基本农田保护图斑",2)   '传入节点的text,1=点击眼睛,2=点击笔或复选框

'对图层眼睛,笔,复选框的控制函数
Sub Fun(ObjStr,NodeName,Flog)'ObjStr=树型结构的对象字符串;NodeName=操作的节点名;Flog=操作的对象(眼睛,笔,复选框)

        Dim NodePath      '节点的名字
        Dim TreeArray()  '存放树的节点l
        Dim NodeCount   '树结构的节点数
       
        NodeCount=ObjStr.GetItemsCount
       
        ReDim TreeArray(NodeCount) ' 动态定义数组,动态存放树的节点名称
       
        For i=0 to NodeCount-1        '将节点存放到数组
       
                TreeArray(i)=cstr(ObjStr.GetItem(i))
       
        Next

        For j=0 to NodeCount-1        '检索节点位置
       
                If  TreeArray(j)=cstr(NodeName) Then
       
                        m=j
                               
                        Exit for          '检索到第一个匹配的节点跳出for循环
                       
                End If
               
        Next
       
        If m<24 Then     '判断是否要拉动滚动条来控制图层
       
                Select  Case Flog
       
                        Case "1"  '所选眼睛的坐标
                                x=45
                                y=13+22*m
                               
                        Case "2"  '所选笔,复选框的坐标
                                x=65
                                y=13+22*m
       
                End Select
       
                        ObjStr.Click x,y  '点击操作
                       
        else

                NodePath=ObjStr.GetItemProperty (m,"path")  '得到所选节点的全路径
               
                ObjStr.Select NodePath

                Select  Case Flog
       
                        Case "1"  '所选眼睛的坐标
                           ObjStr.Click 47,541
                               
                        Case "2"  '所选笔,复选框的坐标
                           ObjStr.Click 65,540
       
                End Select
       
        End If
   
End Sub

[ 本帖最后由 jifeng 于 2007-11-20 14:32 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-11-20 14:40:27 | 只看该作者
大家帮我看看有没有需要改进的地方啊。现在整个函数运行一次需要3.6秒(30个节点),因为软件对这个操作非常频繁,能不能用其他的方式来缩减一些运行时间啊?

各位指教!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-11-14 17:28:25 | 只看该作者
原帖由 jmy_1981 于 2007-11-5 17:48 发表
如题。

1.在C:\Program Files\Mercury Interactive下建立一个目录叫CSOSolution
2.把MouseOperations.dll拷贝到C:\Program Files\Mercury Interactive\CSOSolution下
3.注册这个dll(regsvr32.exe C:\Program F ...



谢谢,此方法确实可以实现点击操作。我发现此方法是根据节点的长度来获取一个坐标,然后实现点击,如当节点是2个汉字时点击的是眼睛,是4个汉字时点击得是笔,5个以上就是点击得节点。
还有就是我发现只有一个SendDoubleClick方法,还有没有其他的方法,我试过SendClick但不支持。那个dll文件有没有一个说明阿?

再次谢谢兄台的帮助
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-11-5 17:48:38 | 只看该作者

lz要先注册dll再使用……

如题。

1.在C:\Program Files\Mercury Interactive下建立一个目录叫CSOSolution
2.把MouseOperations.dll拷贝到C:\Program Files\Mercury Interactive\CSOSolution下
3.注册这个dll(regsvr32.exe C:\Program Files\Mercury Interactive\CSOSolution\MouseOperations.dll)
4.把ActivateCust.txt里面的方法添加到qtp里面。

希望有帮助。
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2007-11-5 16:24:09 | 只看该作者
哪位可以解释一下阿
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2007-11-2 21:56:01 | 只看该作者
原帖由 jmy_1981 于 2007-11-2 16:59 发表
如题

QTP有一个叫mouseoperacion的dll,楼上知道怎么添加附件吗?(在回复里)

>>>我会了
ActivateCust.txt 是一个人工写的方法,写得不是很完善,请多指教。
MouseOperations.dll 是插件。


达人能否介绍一下具体怎么用阿,我搞QTP时间不长,不是太清楚,谢谢
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2007-11-2 16:59:02 | 只看该作者

有第三方插件的

如题

QTP有一个叫mouseoperacion的dll,楼上知道怎么添加附件吗?(在回复里)

>>>我会了
ActivateCust.txt 是一个人工写的方法,写得不是很完善,请多指教。
MouseOperations.dll 是插件。

[ 本帖最后由 jmy_1981 于 2007-11-2 17:01 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

该用户从未签到

2#
发表于 2007-11-2 15:56:23 | 只看该作者
低级模式下(Low Lever Recording)下试试,应该可以操作吧
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-28 01:49 , Processed in 0.074098 second(s), 29 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表