ham301 2008-4-21 18:02
关于第三方控件的识别问题,大家来讨论一下
许多帖子上都讲到了第三方控件的识别问题,但感觉有点天马行空了.这里我提一个具体的应用吧,大家讨论一下.
我所在的公司用了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
[[i] 本帖最后由 ham301 于 2008-4-21 18:09 编辑 [/i]]
ham301 2008-4-21 23:17
:victory: 自己给自己顶一下,大家来畅所欲言吧!
tracy99999 2008-4-22 19:36
等待别人的回答,呵呵:lol
fox750 2008-4-23 11:44
El Tabelle MultiRow和El Tabelle Sheet是啥样子的东西?我也刚开始用,遇到最多的还是SwfTable
ham301 2008-8-28 12:05
我们公司现在用的是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
大概找到原因了,可能是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
设置:
TOOL--OPTIONS-RUN tab --RUN MODE
把单步执行的时间调到1秒.
去掉MSG后,还是不行.
应该不是执行时间的问题.
到底啥原因呢:'(