51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3524|回复: 10
打印 上一主题 下一主题

[原创] 关于第三方控件的识别问题,大家来讨论一下

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-4-21 18:02:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
许多帖子上都讲到了第三方控件的识别问题,但感觉有点天马行空了.这里我提一个具体的应用吧,大家讨论一下.
我所在的公司用了El Tabelle MultiRow和El Tabelle Sheet两个列表控件, QTP不能识别,虚拟对象或是映射对象不大合适,总不能把集成了多种基础控件的列表控件指定为winlist吧.有没有哪个兄弟姐妹的公司用到了El Tabelle for .NET的控件,怎么在QTP中解决识别问题的?
    大家一起来讨论吧!


SwfWindow("==========").SwfObject("multiRowSheet1").Click 19,151
SwfWindow("==========").SwfObject("multiRowSheet1").Click 89,103
SwfWindow("==========").SwfObject("multiRowSheet1").Click 17,107
SwfWindow("==========").SwfObject("multiRowSheet1").Click 17,107
SwfWindow("==========").SwfButton("=======").Click
SwfWindow("==========").SwfWindow("==========").SwfObject("eltMRowPayment").Click 25,467
SwfWindow("==========").SwfWindow("==========").SwfObject("eltMRowPayment").Type  micReturn
SwfWindow("==========").SwfWindow("==========").SwfObject("eltMRowPayment").Click 356,494
SwfWindow("==========").SwfWindow("==========").SwfObject("eltMRowPayment").DblClick 353,493

[ 本帖最后由 ham301 于 2008-4-21 18:09 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2008-4-21 23:17:00 | 只看该作者
自己给自己顶一下,大家来畅所欲言吧!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-4-22 10:55:19 | 只看该作者
帮你顶,我也遇到了问题,第一次接触,一头雾水
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2008-4-22 18:16:47 | 只看该作者
没人遇到过这种问题吗?高手,指点迷津!
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-4-22 19:36:13 | 只看该作者
等待别人的回答,呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2008-4-23 11:22:35 | 只看该作者
  人呢?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-4-23 11:44:40 | 只看该作者
El Tabelle MultiRow和El Tabelle Sheet是啥样子的东西?我也刚开始用,遇到最多的还是SwfTable
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-4-23 12:50:45 | 只看该作者
列表控件,你可以上网搜索一下.
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-8-28 12:05:46 | 只看该作者
我们公司现在用的是TestPartner,解决的办法是获取控件属性操作
Dim eltMRowMain As TGUIObject              '明細行部分
Dim MulRSheet As Object
Dim eltMRowMainSub As Object

Set eltMRowMain = GUIObject("Name=eltMRowMain ClassName=WindowsForms10.Window.8.app.0.202c666")
Set MulRSheet = eltMRowMain.Object

eltMRowMain.Attach
Set eltMRowMainSub = MulRSheet.Item(0, 0, 0)
MulRSheet.ActiveMRowIndex = 0       '设定活动行
MulRSheet.ActiveCellKey = eltMRowMainSub.Key    '设定活动cell
eltMRowMain.Type "23424"

Set eltMRowMainSub = MulRSheet.Item(0, 8, 0)
MulRSheet.ActiveMRowIndex = 0
MulRSheet.ActiveCellKey = eltMRowMainSub.Key
eltMRowMain.Type "12323"



我用相同的方法放到QTP上,就是不行.
但是,我设了断点调试的时候,一步一步的实行,却有可以.

Set eltMRowMain=SwfWindow("******").SwfObject("eltMRowMain")
Set MulRSheet=SwfWindow("******").SwfObject("eltMRowMain").Object

set eltMRowMainSub = MulRSheet.Item(0, 0, 0)
MulRSheet.ActiveMRowIndex = 0      
MulRSheet.ActiveCellKey = eltMRowMainSub.Key
eltMRowMain.Type "0101"

set eltMRowMainSub = MulRSheet.Item(0, 8, 0)
MulRSheet.ActiveMRowIndex = 0
MulRSheet.ActiveCellKey = eltMRowMainSub.Key
eltMRowMain.Type "11010"

有人知道吗,来讨论一下呢
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-8-28 13:01:57 | 只看该作者
大概找到原因了,可能是QTP执行的太快了.
添加两个调试的MSG ,就可以了.但是,用wait()方法不行.
所以,可不可以改变QTP的运行速度呢?这个,请回答呢

Set eltMRowMain=SwfWindow("******").SwfObject("eltMRowMain")
Set MulRSheet=SwfWindow("******").SwfObject("eltMRowMain").Object

MSGBOX("aaa")
set eltMRowMainSub = MulRSheet.Item(0, 0, 0)
MulRSheet.ActiveMRowIndex = 0      
MulRSheet.ActiveCellKey = eltMRowMainSub.Key
eltMRowMain.Type "0101"

MSGBOX("BBB")
set eltMRowMainSub = MulRSheet.Item(0, 8, 0)
MulRSheet.ActiveMRowIndex = 0
MulRSheet.ActiveCellKey = eltMRowMainSub.Key
eltMRowMain.Type "11010"
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2008-8-28 14:56:49 | 只看该作者
设置:
TOOL--OPTIONS-RUN tab --RUN MODE
把单步执行的时间调到1秒.
去掉MSG后,还是不行.
应该不是执行时间的问题.

到底啥原因呢
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-23 20:12 , Processed in 0.076405 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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