ashley1314 发表于 2013-7-23 15:56:32

QTP无法识别第三方控件问题

公司开发的系统基本上都是用第三方控件的,用QTP去识别对象出来的全是 WinObject的,像这种情况,要如何进行脚本的录制与编写啊,初来咋到,向各位高人求助啊

lewis3p77 发表于 2013-7-23 18:10:58

如果是这样的话,有一个好的建议是让QTP使用将autoit的dll的接口辅助实现会更好一些

wsryyffs 发表于 2013-7-26 16:18:31

如果是这样的话,有一个好的建议是让QTP使用将autoit的dll的接口辅助实现会更好一些
lewis3p77 发表于 2013-7-23 18:10 http://bbs.51testing.com/images/common/back.gif


    能介绍一下怎么使用吗?

lewis3p77 发表于 2013-7-26 18:19:17

一、注册DLL文件
注册AutoItX3.dll 文件在XP X86和WIN7 X86系统中 只需要运行X:\autoit3\AutoItX\注册DLL.CMD 就可以将DLL文件注册到计算机中。 WIN7 X64环境下需要将X:\autoit3\AutoItXAutoItX3_x64.dll和AutoItX3.dll 分别拷贝到C:\Windows\System32 和 C:\Windows\SysWOW64 下面进行注册。

regsvr32 "C:\Windows\System32\AutoItX3_x64.dll"

regsvr32 "C:\Windows\System32\AutoItX3.dll"

regsvr32 "C:\Windows\System32\AutoItX3_x64.dll"

regsvr32 "C:\Windows\SysWOW64\AutoItX3.dll"


二、在QTP中使用Autoit的基本方法
首先需要使用 CreateObject 方法创建 AutoItX3.Control的对象创建事例:
Set Autoit = CreateObject("AutoItX3.Control")
使用Autoit的方法事例1:
Call Autoit.Run ("Explorer /select, " & Parameter("EncFilePath"))

Call 使用Call关键字调用要求参数的过程,则必须用括号将传递给过程的变量括起来。
Autoit.Run Autoit是使用CreateObject 方法定义的对象名称 .Run 为Autout官方提供的方法名称。
("Explorer /select, " & Parameter("EncFilePath")) 是Autoit.Run 变量需要传递的参数列表。


使用Autoit的方法事例2:
Autoit.Sleep 1000
Autoit.Send "{ENTER}"
事例2 上介绍的两个Autoit的方法没有是Call,因为Sleep和Send 这两个函数不需要传递参数,所以建议不加上Call。


使用Autoit的方法事例3:
Set Autoit = CreateObject("AutoItX3.Control")
Call Autoit.Opt ("WinTitleMatchMode", 2)
EncFilePath = Parameter("EncFilePath")
fileName = Split(EncFilePath, "\")
Call Autoit.Run ("Explorer /select, " & Parameter("EncFilePath"))
Autoit.Sleep 1000
Autoit.Send fileName(UBound(fileName))
Autoit.Send "{ENTER}"
Call Autoit.WinClose ("")
Set Autoit = Nothing


事例3中为一个完整的QTP使用Autoit的脚本事例,当我们定义Set Autoit = CreateObject("AutoItX3.Control") 后,在我们不使用Set Autoit 需要Set Autoit = Nothing这样可以释放内存和系统资源。

user603 发表于 2013-7-26 19:14:43

回复 1# ashley1314


    什么语言开发的?

ashley1314 发表于 2013-7-29 11:51:41

回复 5# user603


    用的.net,这个问题已经解决了,我安装了.net的插件破解后,就可以识别对象了
页: [1]
查看完整版本: QTP无法识别第三方控件问题