QTP 的学习

上一篇 / 下一篇  2009-10-20 15:34:13

1. MsgBox的使用

fBrowser("Mercury Tours").Page("Welcome to Mercury").Image("Search Flights").ExistThen

    MsgBox"The Image Exists."
Else
    MsgBox"Cannot find the Image."
EndIf
EndSub
 
'Msgbox DataTable.value("Order")
Window("Flight Reservation").WinEdit("Order No:").Output CheckPoint("Order No:")
Msgbox Parameter("nn")

2.Description 的使用

 

Set nline = Description.Create()
online("src").Value = "http://www.51testing.com/images/new/logo.gif"

 

Set nlineCo = Browser("51Testing软件测试网-中国软件测试人的精神家园").Page("51Testing软件测试网-中国软件测试人的精神家园").ChildObjects(online)

onlineCoCount = onlineCo.Count

If nlineCoCount = 0 Then

 MsgBox "这个页面没有打开"

 wait 2

 else

 Msgbox  "这个页面正常的打开了"
   ' Desktop.CaptureBitmap "d:\test.png",true
    'SendMail "XXXXX@QQ.com","XXXXX","XXXXX","XXXXX","XXXXX","XXXXX@163.com"

 

你可以使用Description对象,来返回一个Properties collection对象,该集合对象包括一系列Property对象。每个Property对象由Property name及value组成。

然后在语句中用Properties collection对象替代被测对象的名称。

注意:默认情况下,所有被添加到Properties collection中的Property对象的值被当成正则表达式对待。因此,当Property Value中包含正则表达式的特殊字符(如*,?,+)时,要在特殊字符前使用“\”符号。

你也可以在Properties Collection中,将RegularExpression属性值设置为False,这样即使在Property Value中用到了正则表达式的特殊字符,也会被视为普通字符。更多信息参考QuickTest Professional Object Model Reference的Utility部分。

要创建Properties collection,使用Dexcription Create语句,语法如下:

Set MyDescription = Description.Create()

一旦创建了Properties 对象(例如上例中的Mydescription),在运行过程中,你就可以使用语句向Properties对象添加、编辑、移除或获取属性及属性值。这使你在运行过程中可以动态的决定:在对象描述中使用哪些属性、使用多少属性。

当你将一系列的属性及属性值加入到Properties collection中以后,你就可以在脚本语句中用Properties对象替代被测对象的名称。

例如,有如下语句:

Window("Error").WinButton("text:=OK", "width:=50").Click

通过改造,成为:

Set MyDescription = Description.Create()

MyDescription("text").Value = "OK"

MyDescription("width").Value = 50

Window("Error").WinButton(MyDescription).Click

注:当为一个ActiveX对象创建编程性描述时,如果该对象的run-time对象是windowless的(即没有相应的window handel),就必须在属性描述中将它的windowless property设置为Ture。

例如:

Set ButDesc = Description.Create

ButDesc("ProgId").Value = "Forms.CommandButton.1"

ButDesc("Caption").Value = "OK"

ButDesc("Windowless").Value = True

Window("Form1").AcxButton(ButDesc).Click

获取Child Objects(Retrieving Child Objects)

通过ChildObjects方法,可以获取指定对象下的所有子对象,或只获取那些符合编程性描述的子对象。为了获取某对象的子对象的子集,首先需创建一个description对象,然后在该对象的descriptions collection中添加一系列的属性及属性值,这些属性及属性值必须符合子集的要求。

注意:你必须使用Description对象来为ChildObjects描述参数 创建编程性描述,不能使用property:=value语法直接将编程性描述添加到参数中。

一旦你已经在description对象中“built”了描述,就可以使用下面的语法来获取与描述匹配的子对象:

Set MySubSet=TestObject.ChildObjects(MyDescription)

例如:下面的语句使QTP选中网页中的所有选择框:

Set MyDescription = Description.Create()

MyDescription("html tag").Value = "INPUT"

MyDescription("type").Value = "checkbox"

Set Checkboxes = Browser("Itinerary").Page("Itinerary").ChildObjects(MyDescription)

NoOfChildObjs = Checkboxes.Count

For Counter=0 to NoOfChildObjs-1

Checkboxes(Counter).Set "ON"

Next

For more information about the ChildObjects method, refer to the QuickTest Professional Object Model Reference

 

3.

 

碰到了个问题,QTP怎么用描述性编程去定位网页中弹出的窗口?
你用OBJECT SPY 把那个窗口捕获,然后观测它的一些常量值如:CLASSNAME SWFTYPENAME 等等
SET  DESC = DESCRIPTION.CREATE()
DESC("CLASSNAME ").VALUE = "AAABBBCCC"
DESC("SWFTYPENAME ").VALUE = "TTTDDDUUU"
DESC("CLASS NAME ").VALUE = "SWFWINDOW"
IF OBJ.SWFOBJECT(DESC).EXIST(1) THEN
      MSGBOX "I AM HERE"
END IF

 
End If

TAG:

 

评分:0

我来说两句

Open Toolbar