51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2050|回复: 5
打印 上一主题 下一主题

[求助] QTP无法识别第三方控件问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-7-23 15:56:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
公司开发的系统基本上都是用第三方控件的,用QTP去识别对象出来的全是 WinObject的,像这种情况,要如何进行脚本的录制与编写啊,初来咋到,向各位高人求助啊
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2013-7-23 18:10:58 | 只看该作者
如果是这样的话,有一个好的建议是让QTP使用将autoit的dll的接口辅助实现会更好一些
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2015-5-5 13:21
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2013-7-26 16:18:31 | 只看该作者
    如果是这样的话,有一个好的建议是让QTP使用将autoit的dll的接口辅助实现会更好一些
    lewis3p77 发表于 2013-7-23 18:10



        能介绍一下怎么使用吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 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 ("[class:CabinetWClass]")
    Set Autoit = Nothing


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

    使用道具 举报

    该用户从未签到

    5#
    发表于 2013-7-26 19:14:43 | 只看该作者
    回复 1# ashley1314


        什么语言开发的?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2013-7-29 11:51:41 | 只看该作者
    回复 5# user603


        用的.net,这个问题已经解决了,我安装了.net的插件破解后,就可以识别对象了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-12 01:26 , Processed in 0.079578 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表