不谋万世者,不足谋一时;不谋全局者,不足谋一域。君子敏于事而慎于言 新浪微薄:土司阿哈

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:

 

评分:0

我来说两句

Open Toolbar