ham301 发表于 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").TypemicReturn
SwfWindow("==========").SwfWindow("==========").SwfObject("eltMRowPayment").Click 356,494
SwfWindow("==========").SwfWindow("==========").SwfObject("eltMRowPayment").DblClick 353,493

[ 本帖最后由 ham301 于 2008-4-21 18:09 编辑 ]

ham301 发表于 2008-4-21 23:17:00

:victory: 自己给自己顶一下,大家来畅所欲言吧!

lengz 发表于 2008-4-22 10:55:19

帮你顶,我也遇到了问题,第一次接触,一头雾水

ham301 发表于 2008-4-22 18:16:47

没人遇到过这种问题吗?高手,指点迷津!

tracy99999 发表于 2008-4-22 19:36:13

等待别人的回答,呵呵:lol

ham301 发表于 2008-4-23 11:22:35

:'(人呢?

fox750 发表于 2008-4-23 11:44:40

El Tabelle MultiRow和El Tabelle Sheet是啥样子的东西?我也刚开始用,遇到最多的还是SwfTable

ham301 发表于 2008-4-23 12:50:45

列表控件,你可以上网搜索一下.

ham301 发表于 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"

有人知道吗,来讨论一下呢

ham301 发表于 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"

ham301 发表于 2008-8-28 14:56:49

设置:
TOOL--OPTIONS-RUN tab --RUN MODE
把单步执行的时间调到1秒.
去掉MSG后,还是不行.
应该不是执行时间的问题.

到底啥原因呢:'(
页: [1]
查看完整版本: 关于第三方控件的识别问题,大家来讨论一下