51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6328|回复: 26
打印 上一主题 下一主题

[求助] QTP如何实现复制粘贴功能

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-6-10 16:42:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在测试的一个软件中有一个输入框,该输入框不支持从键盘输入,只能通过复制粘贴来输入数据,请问能不能用QTP脚本来实现从测试数据文本文件中拷贝测试数据粘贴到该输入框的功能?求达人指教,不胜感激!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-6-10 16:48:22 | 只看该作者
***.Object.insertAdjacentText  "beforeBegin"," 输入的数据"
试试看行不。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2009-6-10 16:50:38 | 只看该作者
原帖由 ls_721521 于 2009-6-10 16:48 发表
***.Object.insertAdjacentText  "beforeBegin"," 输入的数据"
试试看行不。

看不懂,达人能给讲讲怎么用么?
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-6-10 16:53:56 | 只看该作者
前面加上你的输入框的对象就行了。
browser()。page。()。webedit(“你的那个输入框”)。Object.insertAdjacentText  "beforeBegin"," 输入的数据"
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-6-10 16:58:40 | 只看该作者

回复 1# 的帖子

你的图片挺逗。。。这么可爱的姑娘居然立中指!!
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-6-10 16:59:53 | 只看该作者
原帖由 ls_721521 于 2009-6-10 16:53 发表
前面加上你的输入框的对象就行了。
browser()。page。()。webedit(“你的那个输入框”)。Object.insertAdjacentText  "beforeBegin"," 输入的数据"

不好使,报错……我这是C\S系统,这句话提示:对象不支持此属性或方法……
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2009-6-10 17:00:35 | 只看该作者
原帖由 ls_721521 于 2009-6-10 16:58 发表
你的图片挺逗。。。这么可爱的姑娘居然立中指!!

嗯嗯,就是看中这个了
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-6-10 17:04:37 | 只看该作者
哦,那个只适合web的。
你可以用模拟键盘操作,用shell对象试试吧。。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2009-6-10 17:06:01 | 只看该作者
原帖由 ls_721521 于 2009-6-10 17:04 发表
哦,那个只适合web的。
你可以用模拟键盘操作,用shell对象试试吧。。

是考虑过shell对象,ctrl+v倒是简单,怎么从测试数据中ctrl+c难住我了……
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2009-6-10 17:14:47 | 只看该作者
是啊,ctrl+c如何选择数据呢,用鼠标拖动选中数据?那就得更改qtp的录制方式了。。还要考虑用坐标。。
估计这个不可行吧。。
用别的方法吧,查查api看有没有可用的函数
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2009-6-10 17:29:18 | 只看该作者
太难了,查不到……
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2009-6-10 17:30:45 | 只看该作者
什么控件这么神奇,不能输入,只能粘贴
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2017-7-4 15:34
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2009-6-10 17:52:21 | 只看该作者
    原帖由 Mr.Prince 于 2009-6-10 17:29 发表
    太难了,查不到……

    用模拟录制试试看看。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2009-6-10 18:20:14 | 只看该作者

    google setClipBoard, getClipBoard

    解决问题不能一根筋
    你不要老想着怎么ctrl+c, ctrl+v...
    退一步海阔天空,你尝试一下怎么通过操作windows的clipboard来解决你的问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2009-6-11 09:40:32 | 只看该作者
    原帖由 intothestorm 于 2009-6-10 18:20 发表
    解决问题不能一根筋
    你不要老想着怎么ctrl+c, ctrl+v...
    退一步海阔天空,你尝试一下怎么通过操作windows的clipboard来解决你的问题。

    你的意思是把测试数据保存到剪切板吧,这我还真不会,你教教我?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2009-6-11 09:43:44 | 只看该作者

    貌似vbs不能直接操作粘贴板,我绕过它用IE。

    ' Have you played this funny game?
    str = "Plants Vs Zombies"
    setClipBoardData str
    Msgbox getClipBoardData

    Public Function getClipBoardData
            Set oIE = CreateObject("InternetExplorer.Application")
            oIE.Navigate("about:blank")
            oIE.visible=False
            getClipBoardData = oIE.document.parentwindow.clipboardData.GetData("text")
            Set oIE = Nothing
    End Function

    Public Sub setClipBoardData(strCopy)
            Set oIE = CreateObject("InternetExplorer.Application")
            oIE.Navigate("about:blank")
            oIE.visible=False
            oIE.document.parentwindow.clipboardData.SetData "text", strCopy
            Set oIE = Nothing
    End Sub
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
     楼主| 发表于 2009-6-11 10:37:56 | 只看该作者
    我理解上面的代码是利用IE的地址栏将测试数据拷贝到剪切板,并且隐藏了IE窗口,确实解决了ctrl+c的问题,学习了
    非常感谢intothestorm
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2009-6-11 11:05:59 | 只看该作者

    你看看有没有有权限这样调用

    function getData(path)
    set fso = Createobject("Scripting.FileSystemObject")
    set file_p=fso.OpenTextFile(path)
    str=file_p.readall()

    dim objhtm,flg   
    set objhtm=createobject("htmlfile")  
      
    flg=objhtm.parentwindow.clipboarddata.setdata("text",str)  

    end function
    getData "d:\a.txt"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2009-6-11 11:39:55 | 只看该作者
    哪里需要那么麻烦呢,添加到剪贴板直接使用Mercury提供的对象就好了
    1. Set oCB = CreateObject("Mercury.Clipboard")
    2. oCB.SetText "Copy me"
    3. Set oCB = Nothing
    复制代码
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
     楼主| 发表于 2009-6-11 11:53:57 | 只看该作者
    我查了一下帮助,果然如楼上所说,Mercury自带操作剪切板的方法……
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-9-21 11:13 , Processed in 0.086658 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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