51Testing软件测试论坛

标题: 如何捕获该窗口上在按钮? [打印本页]

作者: madwolfer    时间: 2010-1-20 14:06
标题: 如何捕获该窗口上在按钮?
我们这次开发采用的是.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").Type  micBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").Type  micBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").Type  micBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").Type  micBack
Window("安全防范和应急指挥系统").Window("系 统 参 数 设 置").WinObject("0104").Type  micBack
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").Type  micBack
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").Type  micF5
________________________________________________________________________________________________________

[ 本帖最后由 madwolfer 于 2010-1-20 14:28 编辑 ]
作者: 风雪夜归人    时间: 2010-1-20 17:36
是要运行一个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
其实可以直接 SystemUtil.Run "程序路径"
作者: dhrbc    时间: 2010-1-21 09:56
能够运行到这里说明程序已经起来了,接下来的问题应该是对象没有识别,仅仅识别成了最基本的WinObject对象,并且采用了坐标定位。解决的简单方法是可以加载.NET Addin试试,如果没有可以考虑采用虚拟对象。
作者: dhrbc    时间: 2010-1-21 09:57
同时可以用Object Spy判断对象的识别情况
作者: madwolfer    时间: 2010-1-22 13:55
原帖由 风雪夜归人 于 2010-1-20 17:36 发表
是要运行一个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
原帖由 dhrbc 于 2010-1-21 09:56 发表
能够运行到这里说明程序已经起来了,接下来的问题应该是对象没有识别,仅仅识别成了最基本的WinObject对象,并且采用了坐标定位。解决的简单方法是可以加载.NET Addin试试,如果没有可以考虑采用虚拟对象。

请问你说的.NET Addin如何使用?
作者: madwolfer    时间: 2010-1-22 13:56
原帖由 dhrbc 于 2010-1-21 09:57 发表
同时可以用Object Spy判断对象的识别情况

请问你这个如何使用,能否给出详细的案例或者代码?




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2