-
QTP中使用internetexplorer.application对象访问剪贴板
2008-08-30 14:00:35
Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎").Frame("mainRight_3").Image("an_houqu_copy").Click '点击图片为复制操作
Set ie=createobject("internetexplorer.application")
ie.navigate "about:blank"
ie.visible=False
str=ie.document.parentwindow.clipboarddata.getdata("text")
MsgBox (str) -
QTP中错误处理(大林版)
2008-08-29 16:32:59
On error resume next
datatable.GlobalSheet.DeleteParameter "num" '实际Global表中没有num这个字段,运行时会报错.
If err.number <> 0 Then
createlog "C:\error.txt","Error",err.descrīption
End IfFunction createlog(filepath,logtype,logdetail)
'该脚本用于输出LOG
FilePath = filepath 'LOG文件的路径
LOGType = logtype 'LOG的类型
LOGDetail = logdetail 'LOG的内容Set fso = CreateObject("scrīpting.FileSystemObject")
'判断LOG文件是否存在,如不存在,则按指定路径新建
If fso.FileExists(FilePath) = False Then
Set LOGFile = fso.CreateTextFile(FilePath, True)
LOGFile.Close
end if
Set LOGFile = fso.OpenTextFile(FilePath, 8, True) '8为追加LOGFile.WriteLine("")
LOGFile.WriteLine(" ---------------------------------------------------------")
LOGFile.WriteLine(" Time:" & Cstr(Now))
LOGFile.WriteLine(" Type:" & LOGType )
LOGFile.WriteLine(" Detail:" & LOGDetail)
LOGFile.Close
Set LOGFile = nothing
Set fso = nothing
End Function -
VBS错误处理
2008-08-29 16:30:09
引发错误的原因有很多,例如用户输入了错误类型的值,或者脚本找不到必需的文件、目录或者驱动器,我们可以使用循环技术来处理错误,但是VBS本身也提供了一些基本技术来进行错误的检测和处理。
1、最常见的错误是运行时错误,也就是说错误在脚本正在运行的时候发生,是脚本试图进行非法操作的结果。例如数组下标越界。在vbs中,任何运行时错误都是致命的,此时,脚本将停止运行,并在屏幕上显示一个错误消息。你可以在脚本的开头添加
On Error Resume Next
这行语句可以告诉vbs在运行时跳过发生错误的语句,紧接着执行跟在它后面的语句。
发生错误时,该语句将会把相关的错误号、错误描述和相关源代码压入错误堆栈。
2、虽然On Error ResumeNext语句可以防止vbs脚本在发生错误时停止运行,但是它并不能真正处理错误,要处理错误,你需要在脚本中增加一些语句,用来检查错误条件并在错误发生时处理它。
vbscrīpt提供了一个对象err对象,他有两个方法clear,raise,5个属性:descrīption,helpcontext,helpfile,number,source
err对象不用引用实例,可以直接使用,例如:
On Error Resume next
Dim Array(3)
For i = 0 To 4
Array(i) = i
If Err.Number <> 0 Then
MsgBox (Err.Number & Err.Descrīption & Err.Source)
Exit For
Else
MsgBox (Array(i))
End IfNext
-
VBS启动QTP
2008-08-28 09:52:15
Set qtpapp = CreateObject("quicktest.application") '创建QTP应用程序的实例对象
qtpapp.launch '启动QTP
qtpapp.visible = True '让QTP可见
qtpapp.open "F:\QTP_TestCase\Test" '打开相应脚本
Set qtpapp = Nothing '释放QTP对象 -
生成一个唯一的字符串
2008-08-19 15:33:48
Public Function onlynum()
'此函数用于生成一个唯一的字符串
onlynum = Join(Split(Date(),"-"),"") & Join(Split(Time(),":"),"")
End Function -
QTP读取Excel表中的值
2008-08-18 14:34:07
'此函数实现取得Excel表中某一单元格值的功能
'4个参数的意义分别为:
'filepath:Excel文件路径
'sheetname:表名
'rownum:行号
'colnum:列号或列名
'调用方法:getcell("c:\pp.xls","Sheet1",1,1)或getcell("c:\pp.xls","Sheet1",1,"A")Function getcell(filepath,sheetname,rownum,colnum)
Set excobj = createobject("Excel.Application")
Set excfile = excobj.workbooks.open(filepath)
Set excsheet = excfile.worksheets(sheetname)getcell = excsheet.cells(rownum,colnum)
End Function
-
VBSEdit工具无法运行解决方法
2008-08-12 17:52:17
如果运行时报"Cscrīpt 错误: 没有在该机执行 Windows 脚本宿主的权限。请与系统管理员联系。"此类错误,可以在“运行”中输入regedit打开注册表编辑器,找到[HKEY_LOCAL_MACHINE\SOFTWARE|Miscrosoft\Windows scrīpt Host\Setting],在右边窗口找到Enabled,将其值改为1即可。 -
VBS输出LOG到TXT
2008-08-12 11:39:31
'***************Information About scrīpt***************
'Company: broadengate
'Author: dalin
'Product: ruanko
'Date: 2008-8-12
'******************************************************
'调用函数
Call createlog("C:\log.txt","Error","LOG的内容")
'该脚本用于输出LOG
Function createlog(filepath,logtype,logdetail)
FilePath = filepath 'LOG文件的路径
LOGType = logtype 'LOG的类型
LOGDetail = logdetail 'LOG的内容Set fso = CreateObject("scrīpting.FileSystemObject")
'判断LOG文件是否存在,如不存在,则按指定路径新建
If fso.FileExists(FilePath) = False Then
Set LOGFile = fso.CreateTextFile(FilePath, True)
LOGFile.Close
end if
Set LOGFile = fso.OpenTextFile(FilePath, 8, True) '8为追加LOGFile.WriteLine("")
LOGFile.WriteLine(" ---------------------------------------------------------")
LOGFile.WriteLine(" Time:" & Cstr(Now))
LOGFile.WriteLine(" Type:" & LOGType )
LOGFile.WriteLine(" Detail:" & LOGDetail)
LOGFile.Close
End Function
-
QTP常用tips(大林版[2])
2008-08-07 17:11:14
1.新打开一个IE,网址为www.baidu.com
systemutil.Run "iexplore.exe","http://www.baidu.com"
2.页面跳转
Browser("软酷.人力资源引擎").Navigate "http://www.baidu.com"
3.关闭所有的IE
iecount = systemutil.CloseProcessByName ("iexplore.exe") '关闭所有的IE
msgbox (iecount) '关闭IE的数量4.导入数据表
datatable.ImportSheet "C:\pp.xls","Sheet1","Global"
5.导出数据表
datatable.Export ("C:\gg.xls") '将所有的表都导出到相应文件中
datatable.ExportSheet "C:\bb.xls","Action1" '将Action1这个表导出到相应文件中6.创建action template.
当希望在每一个新建action时都增加一些头部说明,比如作者、创建日期、说明等,用action template
来实现最简单快捷。
方法:用记事本等文本编辑器,输入如下类似的内容:
'***************Information About scrīpt***************
'Company: broadengate
'Author: iori
'Product: ruanko
'Date: YYYY-MM-DD
'******************************************************
然后将文件保存为ActionTemplate.mst,并存放到QTP安装目录下的dat目录,重启QTP,新建的action会包含以上信息。
7.ChildObjects的应用
'该代码实现选中页面中所有checkbox的功能
Set gg = descrīption.Create()
gg("type").value = "checkbox"
set aa = Browser("软酷.人力资源引擎").Page("IT技能测评 - 软酷.人力资源引擎").ChildObjects(gg)
n = aa.count()
For i = 0 to n-1 count是由0开始计数的,如果写成i = 1 to n,回放时就会报错.
aa(i).set "on"
Next8.ExitAction
用结束当前Action的运行,不牵涉其它的Action的运行情况。如果在脚本出现运行错误或者说在循环的跳出条件的约束下结束运行,就不应该使用这个函数,因为很可能结束当前Aciotn的运行之后,其它的Action将会开始运行。
9.ExitRun
这是最彻底的结束运行的方式,如果是在交易(运行)出错的情况下,决定停止执行当前交易,则一般使用判断条件的约束强制结束脚本的运行。这时候的结束需要彻底,就使用该函数,这个函数不需要任何参数,直接就停止所有运行。
10.时间日期加减运算
使用dateadd("y/m/d",天数,基础日期)可以搞定.
例如:
a = date()
b = dateadd("m",1,a) '当前月向后推一个月
c = dateadd("d",-15,a) '当前天向前推15天 -
QTP常用tips(大林版[1])
2008-08-07 11:21:39
1.生成0~1之间的随机数
rnd()
2.截取字符串
mid(字符串名,开始截取位数,取多少)
3.时间控件录制不成功解决方案
Browser("软酷.人力资源引擎").Page("注册信息 - 软酷.人力资源引擎").WebEdit("graduateDate").Object.value = "2008-08-01"
4.获取对象运行时相关属性
a = Browser("软酷.人力资源引擎").Page("注册信息 - 软酷.人力资源引擎").WebEdit("idNumber").GetROProperty("value")
5.比较字符串(true为0)
m = browser("项目经理管理平台 - 软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎").Frame("mainRight").WebEdit("WebEdit").Object.value
n = datatable.Value("mail","Global")
x = strcomp(m,n)
If x = 0 Then
reporter.ReportEvent micPass,"个人邮箱检查结果","个人邮箱正常显示!"
else
reporter.ReportEvent micFail,"个人邮箱检查结果","个人邮箱显示不正常!"
End If6.遍历webtable的方法
b = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").RowCount '取总行数
For i = 1 to b '遍历所有行
c = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").ColumnCount(i) '取相应行的列数
For n = 1 to c '遍历所有列
a = Browser("软酷.人力资源引擎").Page("项目经理管理平台 - 软酷.人力资源引擎_2").Frame("mainRight").WebTable("个人邮箱").GetCellData(i,n) '取相应单元格的值
print a
Next
Next7.函数调用
call dalin()
function dalin()
msgbox ("大林!")
end function8.输入报告
reporter.ReportEvent micPass,"报告summary","报告detail"
9.描述性编程
(1).
Browser("name:=软酷.人力资源引擎").page("title:=软酷.人力资源引擎").webedit("name:=userName").set ("dalin")(2).
Set box = descrīption.Create()
box("name").value = serviceId
box("value").value = 94
Browser("软酷.人力资源引擎").Page("IT技能测评 - 软酷.人力资源引擎").WebCheckBox(box).Set "ON"10.调用VBS文件
ExecuteFile "C:\DBOperation.vbs"
-
QTP连接数据库脚本(软酷版)
2008-08-05 18:17:31
'-------------------以下是QTP中的脚本------------------------------------------------------
ExecuteFile "C:\DBOperation.vbs" '调用VBS文件
Dim objConnection,objRecordSet '这两个实例一定要先定义(CONNECTION对象实例&RECORDSET对象实例)
DBConnect() '连接数据库
Dim Sql
Sql ="select * from com_prj_info where prj_id ='837'"ExecuteSql(Sql) '执行SQL
Msgbox(objRecordSet("prj_name"))DBClose() '关闭数据库的连接
'-----------------以下是DBOperation.vbs文件的内容.------------------------------------Public Sub DBConnect()
'Dim objConnection 'CONNECTION对象实例
'Dim objRecordSet 'RECORDSET对象实例
Dim objCommand '命令对象实例
Dim strConnectionString '连接字符串
Set ōbjConnection = CreateObject("ADODB.CONNECTION") '1 - 建立CONNECTION对象的实例
strConnectionString = "Driver={Microsoft ODBC for Oracle};Server=ruanko;Uid=ruanko;Pwd=ruanko;" '2 - 建立连接字符串
objConnection.Open strConnectionString '3 - 用Open 方法建立与数据库连接
End SubPublic Sub ExecuteSql(strSql)
Set ōbjRecordSet = CreateObject("ADODB.RECORDSET") '4 - 建立RECORDSET对象实例
Set ōbjCommand = CreateObject("ADODB.COMMAND") '5 - 建立COMMAND对象实例
objCommand.ActiveConnection = objConnection
objCommand.CommandText = strSql
objRecordSet.CursorLocation = 3
objRecordSet.Open objCommand '6 - 执行SQL语句,将结果保存在RECORDSET对象实例中
End SubPublic Sub DBClose() '关闭数据库连接
objRecordSet.Close
objConnection.Close
Set ōbjCommand = Nothing
Set ōbjRecordSet = Nothing
Set ōbjConnection = Nothing
End Sub