51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2053|回复: 7
打印 上一主题 下一主题

[原创] 【已解决】请问大家,如何使用QTP录制图片拖动整个过程

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-12-26 17:38:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 秦菲 于 2012-12-27 17:06 编辑

我现在想要录制一个动作:
把同界面上的图片从左侧拖到右侧,即
捕获鼠标点击图片开始到放开鼠标整个过程

已经使用过的方法:模拟录制模式,其只能捕获到鼠标的动向
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2012-12-27 08:55:44 | 只看该作者
    回复 1# 秦菲


        低级录制呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2012-12-27 09:13:30 | 只看该作者
    用低级录制,捕获不了拖动这个动作
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2012-12-27 09:54:47 | 只看该作者
    本帖最后由 xjwldlover 于 2012-12-27 09:55 编辑

    录不了就直接写,只是元素的基本方法,不用先录制,示例是一个extJS应用,方法都是一样的

    Set Elem = Window("平台").Page("平台").WebElement("流程名称")
    ' 拖起选定元素 WebElement("流程名称").
    Window("平台").Page("平台").WebElement("流程名称").Drag
    '将元素放到 WebElement("已选")上并释放鼠标,坐标酌情而定,可选项
    Window("平台").Page("平台").WebElement("已选").Drop 300 , 100
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2012-12-27 12:37:53 | 只看该作者
    谢谢xjwldlover 的回答,可是坐标一旦改变,其回放貌似会失败
    还有我不明白Window("平台")是什么意思,才开始学习,请多多关照哈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
     楼主| 发表于 2012-12-27 12:42:00 | 只看该作者
    查了有些资料,有人推荐使用GetTextLocation 方法
    其举例的代码为:
    Sub MoveItemByText(objFrom,strFrom,objTo,strTo)
    Dim l,r,t,b,l1,r1,t1,b1'Drag Item by specified text
    objFrom.GetTextLocation strFrom, l, t, r, b
    objFrom.Drag (l+r)/2, (t+b)/2, 1

    ' Drop Item on specified text
    objTo.GetTextLocation strTo, l1, t1, r1, b1
    objTo.Drop (l1+r1)/2, (t1+b1)/2, 1
    End Sub
    '将hsjzfling从Names列表中拖拽到Result列表的Champion子列表中
    Set bjAct = VbWindow("frmOvertime").ActiveX("ActiveX").ActiveX("ActiveX").ActiveX("ActiveX")
    MoveItemByText objAct.VbTreeView("Names"), "hsjzfling", objAct.VbTreeView("Result"), "Champion"

    我不是很明白的其含义,请哪位大师讲解一下,可好?先谢谢了哈
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2012-12-27 14:46:48 | 只看该作者
    回复 5# 秦菲

    Window("平台").Page("平台").WebElement("已选").Drop 300 , 100

    Window("平台") 就是一个对象名,你可以理解为browser("平台"),这个无关紧要
    WebElement("已选").Drop 300 , 100: 坐标可以不带;如果不带,就会默认拖放到WebElement("已选")对象的中心位置,然后释放

    你下面那团代码,思路是将包含某 某段文字的对象 ,拖放到 包含另段文字的对象上,然后释放。通过文字识别对象,然后操作
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2012-12-27 16:03:35 | 只看该作者
    本帖最后由 秦菲 于 2012-12-27 16:05 编辑

    用 站友xjwldlover的方法,实现了拖拽,不过也有点不一样了,给大家分享一下
    步骤:
    (1)录制脚本,获取对象
    (2)遇到需要拖拽的地方,把录制模式切换到模拟录制(Analog Rcording)
    (3)更改脚本,把需要拖拽的对象的动作更改为Drag
    代码:
    Browser("XX").Page("XX").WebElement("aaa").Drag//需要拖拽的对象aaa
    Desktop.RunAnalog "Track1"
    Browser("XX").Page("XX").WebElement("bbb").Click//把拖拽的对象,放在这个文件bbb里面
    谢谢大家的帮助
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-15 01:21 , Processed in 0.079210 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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