51Testing软件测试论坛

标题: QTP如何实现复制粘贴功能 [打印本页]

作者: Mr.Prince    时间: 2009-6-10 16:42
标题: QTP如何实现复制粘贴功能
我现在测试的一个软件中有一个输入框,该输入框不支持从键盘输入,只能通过复制粘贴来输入数据,请问能不能用QTP脚本来实现从测试数据文本文件中拷贝测试数据粘贴到该输入框的功能?求达人指教,不胜感激!
作者: ls_721521    时间: 2009-6-10 16:48
***.Object.insertAdjacentText  "beforeBegin"," 输入的数据"
试试看行不。
作者: Mr.Prince    时间: 2009-6-10 16:50
原帖由 ls_721521 于 2009-6-10 16:48 发表
***.Object.insertAdjacentText  "beforeBegin"," 输入的数据"
试试看行不。

看不懂,达人能给讲讲怎么用么?
作者: ls_721521    时间: 2009-6-10 16:53
前面加上你的输入框的对象就行了。
browser()。page。()。webedit(“你的那个输入框”)。Object.insertAdjacentText  "beforeBegin"," 输入的数据"
作者: ls_721521    时间: 2009-6-10 16:58
标题: 回复 1# 的帖子
你的图片挺逗。。。这么可爱的姑娘居然立中指!!
作者: Mr.Prince    时间: 2009-6-10 16:59
原帖由 ls_721521 于 2009-6-10 16:53 发表
前面加上你的输入框的对象就行了。
browser()。page。()。webedit(“你的那个输入框”)。Object.insertAdjacentText  "beforeBegin"," 输入的数据"

不好使,报错……我这是C\S系统,这句话提示:对象不支持此属性或方法……
作者: Mr.Prince    时间: 2009-6-10 17:00
原帖由 ls_721521 于 2009-6-10 16:58 发表
你的图片挺逗。。。这么可爱的姑娘居然立中指!!

嗯嗯,就是看中这个了
作者: ls_721521    时间: 2009-6-10 17:04
哦,那个只适合web的。
你可以用模拟键盘操作,用shell对象试试吧。。
作者: Mr.Prince    时间: 2009-6-10 17:06
原帖由 ls_721521 于 2009-6-10 17:04 发表
哦,那个只适合web的。
你可以用模拟键盘操作,用shell对象试试吧。。

是考虑过shell对象,ctrl+v倒是简单,怎么从测试数据中ctrl+c难住我了……
作者: ls_721521    时间: 2009-6-10 17:14
是啊,ctrl+c如何选择数据呢,用鼠标拖动选中数据?那就得更改qtp的录制方式了。。还要考虑用坐标。。
估计这个不可行吧。。
用别的方法吧,查查api看有没有可用的函数
作者: Mr.Prince    时间: 2009-6-10 17:29
太难了,查不到……
作者: intothestorm    时间: 2009-6-10 17:30
什么控件这么神奇,不能输入,只能粘贴
作者: peterz    时间: 2009-6-10 17:52
原帖由 Mr.Prince 于 2009-6-10 17:29 发表
太难了,查不到……

用模拟录制试试看看。
作者: intothestorm    时间: 2009-6-10 18:20
标题: google setClipBoard, getClipBoard
解决问题不能一根筋
你不要老想着怎么ctrl+c, ctrl+v...
退一步海阔天空,你尝试一下怎么通过操作windows的clipboard来解决你的问题。
作者: Mr.Prince    时间: 2009-6-11 09:40
原帖由 intothestorm 于 2009-6-10 18:20 发表
解决问题不能一根筋
你不要老想着怎么ctrl+c, ctrl+v...
退一步海阔天空,你尝试一下怎么通过操作windows的clipboard来解决你的问题。

你的意思是把测试数据保存到剪切板吧,这我还真不会,你教教我?
作者: intothestorm    时间: 2009-6-11 09:43
标题: 貌似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
作者: Mr.Prince    时间: 2009-6-11 10:37
我理解上面的代码是利用IE的地址栏将测试数据拷贝到剪切板,并且隐藏了IE窗口,确实解决了ctrl+c的问题,学习了
非常感谢intothestorm
作者: shanxi    时间: 2009-6-11 11:05
标题: 你看看有没有有权限这样调用
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"
作者: hsjzfling    时间: 2009-6-11 11:39
哪里需要那么麻烦呢,添加到剪贴板直接使用Mercury提供的对象就好了
  1. Set oCB = CreateObject("Mercury.Clipboard")
  2. oCB.SetText "Copy me"
  3. Set oCB = Nothing
复制代码

作者: Mr.Prince    时间: 2009-6-11 11:53
我查了一下帮助,果然如楼上所说,Mercury自带操作剪切板的方法……
作者: 欧阳    时间: 2009-6-11 12:10
标题: QTP有clipboard对象
Set MyClipboard = CreateObject("Mercury.Clipboard")
MyClipboard.Clear
MyClipboard.SetText "TEST"
MsgBox MyClipboard.GetText
作者: ls_721521    时间: 2009-6-11 12:15
学习。。。
作者: intothestorm    时间: 2009-6-11 14:33
原帖由 Mr.Prince 于 2009-6-11 11:53 发表
我查了一下帮助,果然如楼上所说,Mercury自带操作剪切板的方法……


不是楼上的回答,我的弯路走得好远
不过我在帮助文档里查不到这个方法,楼主怎么查的?
作者: Mr.Prince    时间: 2009-6-11 15:21
标题: 回复 23# 的帖子
我是在搜索里查找clipboard,然后在搜索出的结果中找到标题为Standard Windows Environment里面看到的,我这里是第五个标题。内容里的最后几行就是21#说的那些。
作者: hihotb    时间: 2009-6-17 17:01
哇塞,学习了。。
作者: lijinshui    时间: 2009-6-18 09:26
关于 mercury提供的这些有用的函数在那里可以查阿,好像QTP自带的那个帮助文档不是很全阿
作者: lijinshui    时间: 2009-6-18 09:42
标题: 回复 24# 的帖子
恩 可以找到了,但是感觉好麻烦
HP把这个帮助文档搞得藏着掖着,偷来的阿




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