关于第三方控件的识别问题,大家来讨论一下
许多帖子上都讲到了第三方控件的识别问题,但感觉有点天马行空了.这里我提一个具体的应用吧,大家讨论一下.我所在的公司用了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 编辑 ] :victory: 自己给自己顶一下,大家来畅所欲言吧! 帮你顶,我也遇到了问题,第一次接触,一头雾水 没人遇到过这种问题吗?高手,指点迷津! 等待别人的回答,呵呵:lol :'(人呢? El Tabelle MultiRow和El Tabelle Sheet是啥样子的东西?我也刚开始用,遇到最多的还是SwfTable 列表控件,你可以上网搜索一下. 我们公司现在用的是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"
有人知道吗,来讨论一下呢 大概找到原因了,可能是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" 设置:
TOOL--OPTIONS-RUN tab --RUN MODE
把单步执行的时间调到1秒.
去掉MSG后,还是不行.
应该不是执行时间的问题.
到底啥原因呢:'(
页:
[1]