不谋万世者,不足谋一时;不谋全局者,不足谋一域。君子敏于事而慎于言
新浪微薄:土司阿哈
qtp的一些小知识
上一篇 /
下一篇 2008-04-07 21:19:05
qtp的一些小知识
1.GetCellData函数
作用:获取单元格的值
例: rowCount = Browser("xxx ").Page("xxx ").Frame("xxx").WebTable("xxx").RowCount
For counter = 1 To rowCount
text = Browser("xxx").Page("xxx").Frame("xxx").WebTable("xxx").GetCellData(counter,1)
If (text = "xxx") Then
counter = counter - 1
selectNO = "#" & counter
Browser("xxx").Page("xxx").Frame("xxx").WebRadioGroup("xxx").Select selectNO
Exit For
End If
Next
2.把值插入datatable里
例: datatable.setcurrentrow(i)
datatable.value("name","Global")="name"
datatable.value("passwd","Global")="passwd"
3.用代码来启动浏览器
Browser1 = "IE"
StartURL = "www.51testing.com"
IF Browser1 = "IE" THEN
set IE = CreateObject("InternetExplorer.Application")
IE.Visible = true
IE.Navigate StartURL
END IF
4.ExecuteFile函数
作用:ExecuteFile 可以直接执行vbs文件,而不需要将其导入resource中
ExecuteFile FileName
说明:where FileName is the absolute or relative path of your VBscrīpt file.
例:ExecuteFile("F:\test.vbs")
5.Strcomp函数
作用:比较文本
例:dim strtext1,strtext2,str ,str1,comp1
strtext1 = "xxx"
strtext2 = "xxx"
str = VbWindow("xxx").VbWindow("xxx").VbLabe1("xxx").GetTOProperty("text")
str1= VbWindow("xxx").VbWindow("xxx").VbLabel("xxx").GetTOProperty("text")
comp1=strcomp(strtext1,str,0)
If comp=0 Then
msgbox “这两个串相等”
else
msgbox str
End If
6.CaptureBitmap
作用:捕获屏幕
7. GetROProperty
作用:取对象属性值
例:VbWindow("xxx").VbWindow("xxx").VbWindow("xxx").ActiveX("xxx").GetROProperty("TextMatrix(1,0)")
8.ExitAction - 退出当前操作,无论其循环属性如何。
ExitActionIteration - 退出操作的当前循环。
ExitRun - 退出测试,无论其循环属性如何。
ExitGlobalIteration - 退出当前全局循环。
9.如何使用Excel对象处理数据?
Dim xl
打开excel文件
Function OpenExcelFile(strFilePath)
Set xl = CreateObject("Excel.Application")
xl.Workbooks.Open strFilePath
End Function
获得指定单元格数据
Function GetCellData(strSheet,rwIndex,colIndex)
GetCellData = xl.WorkSheets(strSheet).Cells(rwIndex,colIndex)
End Function
填充单元格数据
Function PutCellData(strSheet,rwIndex,colIndex,varData)
xl.WorkSheets(strSheet).Cells(rwIndex,colIndex) = varData
End Function
保存并推出
Function SaveAndQuit()
xl.Activeworkbook.save
xl.Quit
Set xl = nothing
End Function
10.连接sql数据库
例:Dim res,cmd,sql
Set Res=createobject("adodb.recordset")
Set Cmd=createobject("adodb.command")
Cmd.activeconnection="Provider=SQLOLEDB.1;Password=111111;Persist Security Info=True;User ID=sa;Initial Catalog=xhq;Data Source=192.168.191.142" '这句话是连接数据库的数据源,要做修改
Cmd.CommandType = 1
sql="selec t * from 表 where name=username"
Cmd.CommandText = sql
Set res = Cmd.Execute()
Set res = nothing
Set cmd.ActiveConnection = nothing
Set Cmd= nothing
11.如何在QTP运行过程中屏蔽鼠标
在运行QTP脚本的过程中,有些操作可能是对鼠标、键盘敏感的,需要在QTP运行过程中屏蔽鼠标或键盘输入。这是可用SystemUtil对象的BlockInPut方法,如下代码所示:
SystemUtil.BlockInput
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("userName").Set "mercury"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").WebEdit("password").SetSecure "4082986e39ea469e70dbf8c5a29429fe138c6efc"
Browser("Welcome: Mercury Tours").Page("Welcome: Mercury Tours").Image("Sign-In").Click 2, 2
SystemUtil.UnblockInput
12.QTP中的DeviceReplay对象的使用
DeviceReplay对象可用于在QTP中直接操纵鼠标和键盘,例如单击鼠标、发送键盘按键、输入字符串等动作。
下面的脚本首先创建DeviceReplay对象,然后使用其SendString方法发送一段字符串,然后使用MouseMove方法移动鼠标,使用MouseClick方法单击鼠标:
Dim devicereplay
word = "Hello World!"
Set devicereplay = CreateObject("Mercury.DeviceReplay")
devicereplay.SendString(word)
devicereplay.MouseMove 200,200
devicereplay.MouseClick 200,200,LEFT_MOUSE_BUTTON
而下面的脚本将按下“SHIFT”键:
Dim devicereplay
VK_SHIFT = 42
Set devicereplay = CreateObject("Mercury.DeviceReplay")
devicereplay.KeyDown(VK_SHIFT)
13.QTP访问DOM的方法
QTP支持直接访问DOM(Document Object Model),可以通过DOM来访问HTML标签。在QTP中,访问DOM是通过使用Page测试对象的Object属性来进一步访问的,例如下面的脚本获取到Google主页中的:
On Error Resume Next
Set Doc = Browser("Google").Page("Google").Object
' 循环获取Page中的所有对象
For Each Element In Doc.all
TagName = Element.TagName ' 获取标签名
InnerText = Element.innerText ' 获取inner text.
' 把信息写入测试结果
Reporter.ReportEvent 0, TagName, InnerText
Next
14.在QTP中巧用WebTable对象的ChildItem方法进行测试
WebTable对象中的ChildItem方法用于获取单元格中的测试对象,例如下面的脚本首先获取WebTable对象,然后通过ChildItem获取指定单元格中的链接对象,并单击该链接:
' 获取WebTable对象
Set ōbjTable = Browser("WebSite").Page("WebSite").WebTable("WebSite")
intRow = 2
intCol = 2
' 通过ChildItem获取单元格中的链接对象
Set ōbjLink = objTable.ChildItem(intRow, intCol, "Link" , 0)
' 单击链接
objLink.click
收藏
举报
TAG: