madwolfer 发表于 2010-1-20 14:06:30

如何捕获该窗口上在按钮?

我们这次开发采用的是.NET和C++语言进行开发,但是我在用QTP9.2进行录制后的回放过程中发现在图2中停止了回放,换句话说,也就是说在录制时只捕获了他的图片(不知道这么说是否正确),但没有捕获它后面包含在控件,所以在回放时无法回放。请问,我该如何解决这个问题。
________________________________________________________________________________________________________
Window("hs").WinListView("SysListView32").Select "SZ.ALARM.exe"
Window("hs").WinListView("SysListView32").Activate "SZ.ALARM.exe"
*******************************************************************************
Window("安全防范和应急指挥系统").WinObject("系统设置").Click 46, 7
*******************************************************************************
rem 目前是上面这段代码无法识别

Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").Click 73,10
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").TypemicBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").TypemicBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").TypemicBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").TypemicBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").TypemicBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").Type "0510"
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("保   存").Click 85,22
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").Dialog("成功").WinButton("确定").Click
Window("安全防范和应急指挥系统").DblClick 861,459
Window("hs").WinListView("SysListView32").Activate "SZ.ALARM.exe"
Window("安全防范和应急指挥系统").WinEdit("Edit").Set "ygl"
Window("安全防范和应急指挥系统").WinObject("1").Click 29,11
Window("安全防范和应急指挥系统").WinObject("1").TypemicBack
Window("安全防范和应急指挥系统").WinObject("1").Type "1"
Window("安全防范和应急指挥系统").WinObject("确    定").Click 39,14
Window("安全防范和应急指挥系统").WinObject("WindowsForms10.Window.8.app.0.").Click 910,18
Window("安全防范和应急指挥系统").DblClick 964,345
Window("hs").WinListView("SysListView32").TypemicF5
________________________________________________________________________________________________________

[ 本帖最后由 madwolfer 于 2010-1-20 14:28 编辑 ]

风雪夜归人 发表于 2010-1-20 17:36:35

是要运行一个exe,然后再点击吧?
Window("hs").WinListView("SysListView32").Select "SZ.ALARM.exe"
Window("hs").WinListView("SysListView32").Activate "SZ.ALARM.exe"
Wait 10
For intLoop = 1 To 10
   If Window("安全防范和应急指挥系统").Exist(1) Then
      Window("安全防范和应急指挥系统").Activate
      Window("安全防范和应急指挥系统").WinObject("系统设置").Click 46, 7
      intLoop = 10
   Else
      Wait 1
   End If
Next
试试这个。

风雪夜归人 发表于 2010-1-20 17:38:05

其实可以直接 SystemUtil.Run "程序路径"

dhrbc 发表于 2010-1-21 09:56:04

能够运行到这里说明程序已经起来了,接下来的问题应该是对象没有识别,仅仅识别成了最基本的WinObject对象,并且采用了坐标定位。解决的简单方法是可以加载.NET Addin试试,如果没有可以考虑采用虚拟对象。

dhrbc 发表于 2010-1-21 09:57:09

同时可以用Object Spy判断对象的识别情况

madwolfer 发表于 2010-1-22 13:55:29

原帖由 风雪夜归人 于 2010-1-20 17:36 发表 http://bbs.51testing.com/images/common/back.gif
是要运行一个exe,然后再点击吧?
Window("hs").WinListView("SysListView32").Select "SZ.ALARM.exe"
Window("hs").WinListView("SysListView32").Activate "SZ.ALARM.exe"
Wait 10
For intLoop = 1 To 10
    ...
今天按照你给出的代码去实验了哈,不行。

我发现这个问题是普遍的,很多人在使用QTP时都遇到这样的情况。

madwolfer 发表于 2010-1-22 13:56:03

原帖由 dhrbc 于 2010-1-21 09:56 发表 http://bbs.51testing.com/images/common/back.gif
能够运行到这里说明程序已经起来了,接下来的问题应该是对象没有识别,仅仅识别成了最基本的WinObject对象,并且采用了坐标定位。解决的简单方法是可以加载.NET Addin试试,如果没有可以考虑采用虚拟对象。
请问你说的.NET Addin如何使用?

madwolfer 发表于 2010-1-22 13:56:35

原帖由 dhrbc 于 2010-1-21 09:57 发表 http://bbs.51testing.com/images/common/back.gif
同时可以用Object Spy判断对象的识别情况
请问你这个如何使用,能否给出详细的案例或者代码?
页: [1]
查看完整版本: 如何捕获该窗口上在按钮?