标准Windows控件包括对话框、按钮、静态文本及图像控件、日期时间选择控件,单选按钮、多选框、下拉框、Windows窗体控件、输入框和加密输入框、列表、列表视图、菜单、滚动条、数值选择控件、状态栏、页签、工具栏、树及其他控件和控件状态,现分别按照VBS名称及常规测试方法总结如下:
1、使用Exist属性判断控件是否存在
Rem 判断某个控件是否存在
If Dialog(Login).Exist(3) Then
MsgBox(“Login 窗口存在”)
Else
MsgBox(“Login窗口不存在”)
End If
2、用CheckProperty检查控件属性
使用CheckProperty检查控件属性是否与指定的值一致,如果一致则在结果中标识Pass,否则标识为Fail;
Dialog(“Login”).WinEdit(“Agnt Name”)>CheckProperty(“text”)
Reporter.ReporEvent micPass,“Agent Name”
3、使用GetRoproperty返回测试对象的当前属性
Dim LoginTitle
Login Title = Dialog(“login”).GetROProperty(“text”) Rem 获取窗口标题
MsgBox LoginTitle
4、Dialog对象的测试
Dialog对象是指Windows的对话框控件,对Dialog对象的常用测试是Activate方法,该方法用于模拟用户点击对话框的标题栏,定位到对话框并激活窗口。通常在操作对话框中的控件之间先使用该方法,确保当前对话框可用。如:
Dialog(“Login”).Activate
5、Static对象的测试
Static对象是指Windows静态文本、图像控件,可以用Check方法插入对图像的检查点,在录制过程中,选择Insert |Checkpoint |Bitmap Checkpoint,然后选择制定的图像区域,将产生的代码如下:
Dialog(“Login”).Static(“Static”).Check CheckPoint(“Static”)
注意在插入检查点后,可以定位到代码行中的CheckPoint,单击鼠标右键,选择CheckPoint Properties来重新编辑检查点
6、WinButton对象的测试
WinButton对象很常见,即单击按钮控件,常规测试操作是Click单击,示例代码如下:
Dialog(“Login”).WinButton(“OK”).Click Rem 单击OK按钮
7、WinCalender对象的测试
WinCalender对象是指日期和时间选择控件,例如,Windows搜索助理界面的指定日期控件,常用测试操作是设定日期,需要使用SetDate方法,Date的参数传入有2种方式:
(1)日期字符串型,格式为D-MM-YYYY,如:
Window(“我的电脑”).WinCalender(“SysDateTimePick32”).SetDate”3-Jen-2010”
(2)使用VBScript的日期函数,如Date、Now、IsDate、CDate等,如:
Window(“我的电脑”).WinCalender(“SysDateTimePick32”).SetDate Date Rem设置为当天
此外还可以使用WinCalender对象的SetTime方法来设定时间,如:
Dialog(“Common Controls”).WinCalendar(“SysDateTimePick32”).SetTime”11:11:11”
就是把控件的时间设置为11点11分11秒
8、WinCheckBox对象的测试
WinCheckBox对象为选择框控件,常规测试操作是Set方法,用于模拟用户把某个选项选上,Set方法的参数可以输入ON、OFF、DIMMED三种状态值,示例代码如下:
Window(“Flight Reservation”).Dialog(“Open Order”).Activate
Window(“Flight Reservation”).Dialog(“Open Order”).WinCheckBox(“Customer Name”).Set”ON” Rem 把Customer Name选项打上钩
Window(“Flight Reservation”).Dialog(“Open Order”).WinEdit(“Edit”).Set”CNJ”
9、WinComboBox对象的测试
WinComboBox对象为下拉框控件,常规测试操作是Select方法,用于模拟用户从下拉框中选择某项内容,
Rem 从下拉框中选择
Window(“Flight Reservation”).WinComboBox(“Fly To:”).Select”Frankfurt”
Window(“Flight Reservation”).WinButton(“FLIGHT”).Click
还可以通过GetItemsCount来获得下拉框中所有选项总数,如:
MsgBox Window(“Flight Reservation”).WinComboBox(“Fly To:”).GetItemsCount
Dim ItemStr
ItemStr = Window(“Flight Reservation”).WinComboBox(“Fly To:”).GetItem(1)
If ItemStr = “Denver” Then
MsgBox “OK”
Else
MsgBox ItemStr
End if
10、Windows对象的测试
Windows对象是指窗体控件,常规的测试操作包括Activate、Maximize、Restore,还可以通过GetROProperty方法来获得窗口的标题,用来判断是否为指定的名称。测试示例脚本代码如下:
Window(“记事本”).Activate Rem 激活记事本窗口
Window(“记事本”).Maximize Rem 最大化记事本窗口
Window(“记事本”).Restore Rem 恢复记事本窗口
MsgBox Window(“记事本”).GetROProperty(“text”) Rem 获取记事本窗口标题
11、WinEdit对象的测试
WinEdit对象为常见的输入框,常用的测试方法是Set,用于模拟向输入框中输入文本,如果需要加密的文字,可以使用SetSecure方法,这个主要用于在录制测试脚本时,对输入密码进行加密,然后在回放时进行解密,这样就避免密码明文显示在测试脚本中。示例代码如下:
Dialog(“Login”).Activate
Dialog(“Login”).WinEdit(“AgentName:”).Set “MERCURY”
Rem 在Password框中输入加密后的密码提示字符串
Dialog(“Login”).WinEditor(“PassWord:”).SetSecure“****************************”
Rem ***为加密后的密码字符串,此处省略为***
Dialog(“Login”).WinButton(“OK”).Click
此外,还有一个SetSelection方法,为选择编辑框,如:
Window(“REASES”).Dialog(“楼板布置”).WinEdit(“板厚”).SetSelection 0,1
12、WinEditor对象的测试
WinEditor对象与WinEdit对象方法类似,可以通过Set方法和SetSecure方法来模拟用户输入的加密或未加密的内容,也可以使用Type来模拟用户往输入框输入文本,如:
Rem 往记事本中输入一段文字
Window(“记事本”).WinEditor(“Edit”).Type “1234567890ABCDEF”
Rem 键入回车键
Window(“记事本”).WinEditor(“Edit”).Type micReturn
13、WinList对象的测试
WinList对象是指列表控件,常用的测试操作为Select,用于模拟用户选择列表中的一项内容,如:
Window().Dialog().Activate
Rem 选择WinList中的某项内容,通过名称指定
Window(“REASES”).Dialog(“楼层组装”).WinList(“标准层”).Select “第1标准层”
Window(“Flights Reservation”).Dialog(“Flights Table”).WinButton(“OK”).Click
也可以指定Index来选择内容,注意Index是从0开始的。
14、WinListView对象的测试
WinListView对象是指列表视图控件,常用的操作方式是Select操作,用于模拟用户选择列表视图中的一项内容,示例脚本如下:
Rem 通过名称职定选择SysListView32中的某项内容
Window(“我的电脑_2”).WinListView(“SysListView32”).Select “本地磁盘 (C:\) ”
Rem 通过指定Index来选择,Index从0开始
Window(“我的电脑_2”).WinListView(“SysListView32”).Select 2 rem 选择第三项
WinListView还可以使用ExtendSelect方法,用于模拟用户按下CTRL键进行多选,如:
Window(“我的电脑_2”).WinListView(“SysListView32”).Select “本地磁盘 (C:\) ”
Window(“我的电脑_2”).WinListView(“SysListView32”). ExtendSelect “本地磁盘 (D:\) ”
15、WinMenu对象的测试
WinMenu对象是指菜单控件,常用的测试操作是Select方法,用来模拟用户选择某个菜单项,如:
Rem 通过指定菜单名称来选择菜单项新建文件
Window(“记事本”).Activate
Window(“记事本”).WinMenu(“Menu”).Select”文件(F);新建(N)Ctrl+N ”
Rem 通过指定Index来选择菜单,注意Index是从1开始的
Window(“记事本”).WinMenu(“Menu”).Select”<Item 1>;<Item 2>”
可以使用BuildMenuPath方法构建菜单路径,如:
Rem 构建菜单选择路径“文件|新建”
MenuPath = Window(“记事本”).WinMenu(“Menu”).BulidMenuPath(”文件(F);新建(N)Ctrl+N ”)
Window(“记事本”).WinMenu(“Menu”).Select MenuPath
也可以使用Index来指定菜单项:
MenuPath = Window(“记事本”).WinMenu(“Menu”).BulidMenuPath(1,2)
Window(“记事本”).WinMenu(“Menu”).Select MenuPath
也可以达到上述效果。
16、WinRadioButton对象的测试
WinRadioButton对象是指单选按钮控件,常用的测试操作就是Set方法,用时指定需要Set的控件名称即可,代码如下:
Rem 重力荷载代表值选项被选定
Window(“REASES”).Dialog(“工况组合”).WinRadioButton(“重力荷载代表值”).Set
17、WinScrollBar对象的测试
WinScrollBar对象指滚动条,常规的测试方法有Set、NextLine、NextPage、PrevLine、PrevPage。如果模拟向上滚动1行,可以使用PrevLine方法,多行则可以指定参数为行数,如果想让滚动1页,可以使用PrevPage方法,NextPage相当按下PageDown按钮,PrevPage相当于按下PageUp按钮。
Window(“Book1”).Activate
Rem 单击Excel应用程序中的滚动条,让其向下滚动一行
Window(“Book1”).WinScrollBar(“ScrollBar”).NextLine 1
Window(“Book1”).WinScrollBar(“ScrollBar”).NextPage 1
Window(“Book1”).WinScrollBar(“ScrollBar”).Set 5
通常可以使用GetROProperty方法先获得ScrollBar的maxscrollpos属性,取得最大滚动范围,再根据值设定滚动条的位置,免得Set方法设置的位置超过了范围,示例脚本如下:
Window(“Book1”).Activate
Rem 获取ScrollBar的maxscrollpos属性
Max = Window(“Book1”).WinScrollBar(“ScrollBar”).GetROProperty(“maxscrollpos”)
Rem 设置滚动条位置在中间
Pos = max/2
Window(“Book1”).WinScrollBar(“ScrollBar”).Set Pos
18、WinSpin对象的测试
WinSpin是数值选择控件,如Windows的日期和时间属性窗口中的年份选择控件,常用的测试操作是Next、Prev、Set方法,示例脚本如下:
Dialog(“日期和时间 属性”).Activate
Rem 如果是2009年,则向后选择
If Dialog(“日期和时间 属性”).WinEdit(“Edit”).GetROProperty(“text”) = 2009 Then
Dialog(“日期和时间 属性”).WinSpin(“msctls_statusbar32”).Next
End if
Rem 直接把日期设置为2010
Dialog(“日期和时间 属性”).WinSpin(“msctls_updown32”).Set 2010
19、WinStatusBar对象的测试
WinStatusBar是指状态栏控制,常用的操作是通过GetContent获得状态栏的所有信息,简单的脚本如下:
Rem 获取记事本的状态栏信息
Status = Window(“记事本”).WinStatusBar(“msctls_statusbar32”).GetContent
MsgBox Status
需要注意的是,GetContent获得的是全部的状态栏的信息,如果状态栏分成若干部分的时候,就要使用WinStatusBar的GetItem方法了,如下列脚本,首先使用GetItemsCount方法获得状态栏的个数,然后使用GetItem方法循环取得每一部分的状态栏信息:
Rem 使用GetItemsCount方法获得状态栏部分的个数
StatusItemsCount = Window(“C:\”).WinStatusBar(“msctls_statusbar32”).GetItemsCount
Rem 循环获得每一部分状态栏的信息
For I=0 to StatusItemCount-1
StatusItem = Window(“C:\”).WinStatusBar(“msctls_statusbar32”). GetItems(I)
MsgBox StatusItem
Next
20、WinTab对象的测试
WinTab对象指页签控件,常用的测试操作就是Select方法,Select的方法也可以使用Index,Index是按照页签的顺序从0开始的,此外还提供了GetSelection方法用于确定当前所选的页签是哪个,脚本如下:
Rem Windows的时间日期属性窗口页签显示
Dialog(“日期和时间 属性”).WinTab(“SysTabControl32”).Select“时区”
Dialog(“日期和时间 属性”).WinTab(“SysTabControl32”).Select“Internet 时间”
Dialog(“日期和时间 属性”).WinTab(“SysTabControl32”).Select“时间和日期”
Select方法的输入参数换成Index(1、2、0)也可以达到同样的效果。
Rem 选择第二个页签
Dialog(“日期和时间 属性”).WinTab(“SysTabControl32”).Select 1
Rem 通过GetSelection获得当前所选的页签名称
SelectTab = Dialog(“日期和时间 属性”).WinTab(“SysTabControl32”).GetSelection
Reporter.ReportEvent micDone,”当前所选的Tab页是:“,SelectedTab
21、WinToolBar对象的测试
WinToolBar对象是指工具栏控件,其常用的操作方式是Press方法,用于模拟用户单击工具栏上的某个按钮,如”向上”、“后退”、“搜索”等,脚本代码如下所示:
Window(“C:\”).WinToolBar(“ToolBarWindow32”).Press“向上”
Window(“我的电脑”).WinToolBar(“ToolBarWindow32”).Press“后退”
Window(“C:\”).WinToolBar(“ToolBarWindow32”).Press“搜索”
Press方法也可以是Index,Index按照按钮顺序从1开始,如将上面的代码的“向上”、“后退”和“搜索”改为3、1、4,效果是一样的。
22、WinTreeView对象的测试
WinTreeView对象指树形选择控件,常用的测试操作包括Select、Expand、ExpandAll、Collapse等方法。
Rem 在资源管理器中选择某个磁盘
Window(“我的电脑”).WinTreeView(“SysTreeView32”).Select“桌面;我的电脑;本地磁盘(C:)”
节点用分号(;)隔开。相应的用Expand展开某个节点,用ExpandAll展开全部目录节点:
Window(“我的电脑”).WinTreeView(“SysTreeView32”).Expand“桌面;我的电脑” ‘展开某个节点
Window(“我的电脑”).WinTreeView(“SysTreeView32”).ExpandAll“桌面;我的电脑;本地磁盘(C:)” ‘展开全部目录节点
用Collapse收起处于展开状态的节点
Window(“我的电脑”).WinTreeView(“SysTreeView32”). Collapse
23、WinObject对象的测试
WinObject对象对于测试那些不被QTP识别并归类成特定控件类型的Windows控件,与拥有与其他个各类空间对应的测试对象基本相同的基本方法和属性,如Exist、Click、Type、GetRoProperty、CheckProperty等,如:
Window(“REASES”).Window(“平面图”).WinObject(“MBaseView”).Drag 100,100
Window(“REASES”).Window(“平面图”).WinObject(“MBaseView”).Drop 1000,1000