QTP日常积累
1、init同步测试对象
同步测试对象:
CODE:
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebEdit("wd").init
分析:
Obj.init方法为QTP的隐藏方法,在帮助文档中没有任何介绍,用于重新同步页面上的测试对象。可以通过使用VS2008改装过的Debug引擎来查看此方法。
2、QTP两种回放模式
(1. Event模式 -- 事件跟踪 使用浏览器事件运行鼠标操作
(2.Mouse模式 -- 鼠标跟踪 使用鼠标运行鼠标操作。
Event模式就是我们平时默认用的模式,也就是事件,其实QTP的click方法只是触发了对象的CLICK事件,而并未真正通过鼠标来进行点击按钮。
Mouse模式的话,我们会看到回放的时候,鼠标是跟着对象走的,也就是鼠标跟踪模式。
使用代码控制模式变换
Setting.WebPackage("ReplayType") = 2
1代表事件跟踪,2代表鼠标跟踪(可模拟手工点击,如右键点击
3、自动关闭msgbox
Set WshShell = CreateObject("Wscript.Shell")
WshShell.Popup "等待5秒后关闭",5,"Title"
4、页面滚动条WinScrollBar对象操作,
WinScrollBar对象是指滚动条对象,可以使用其中的Set、NextLine、NextPage、PreLine、PrevPage这几个方法来模拟用户拖动滚动条的动作
'—————————————————————————————————————————
'名称:ScrollBarUp
'作用:滚动条向上
'参数:Obj:需要滚动的对象;otimes:滚动的次数
'使用:ScrollBarUp(Browser("Browser").Page("Page"),6)
1 Function ScrollBarUp(Obj,otimes) 2 On Error Resume Next 3 Dim i 4 For i = 1 To otimes 5 Obj.Object.body.doScroll("scrollbarUp") 6 Next 7 Err.Clear 8 On Error Goto 0 9 End Function
'—————————————————————————————————————————
'名称:ScrollBarDown
'作用:滚动条向下
'参数:Obj:需要滚动的对象;otimes:滚动的次数
'使用:ScrollBarDown(Browser("Browser").Page("Page"),6)
1 Function ScrollBarDown(Obj,otimes) 2 On Error Resume Next 3 Dim i 4 For i = 1 To otimes 5 Obj.Object.body.doScroll("scrollbarDown") 6 Next 7 Err.Clear 8 On Error Goto 0 9 End Function
5、对象库两种方式导出的不同之处
先用 Resources->Object Repository 或 Ctrl+R 的方法打开对象库。
然后就有了下面两种导出:
- File->Export Local Objects
- File->Export and Replace Local Objects
①和②都有导出对象库的功能,但②比①多一个替换功能。
例:添加一个对象至对象库
使用①导出对象库后,对象库中对象无变化,还是本地对象。
Resource->Associate Repositories中的Repositories中无副对象库文件加载。
使用②导出对象库后,对象库中原对象全部都由本地对象变为副对象。
Resource ->Associate Repositories中的Repositories中有了一个副对象库文件,为刚刚导出的对象库文件。
6、日期控件的日期选择例子
选择日期
![](https://img2018.cnblogs.com/blog/1204126/201903/1204126-20190312171447840-1826076357.png)
脚本为:
1
2
3
4
5
6
7
8
|
Dim Dim X
X = "8"
Dim objWidth
objWidth = Browser("Browser").Page("Page").Frame("Frame").WebEdit("WebEdit").GetROProperty("width")
With Browser("Browser").Page("Page").Frame("Frame")
.WebEdit("WebEdit").Click objWidth -10 , 5
.WebElement("class:= urCalPicDay urBorderBox","innertext:=" & X,"index:=0").Click
End With
|
说明:
1. X是参数化用的。
2. 为什么用要用到objWidth,那是因为识别问题,我这边的这个控件被识别成了WebEdit,且最后的那个点出日历表的小图标无法点击到,所以用了Click的坐标参数。
3. 由于日历上会有本月的1号和下个月的1号,本月的30号和上月的30号,为了定位到我想要的日期,所以描述的时候使用了class属性。
7、QTP支持的正则常用表达式
- 使用反斜杠字符 ( \ )
- 匹配任意单个字符 ( . )
- 匹配列表中的任意单个字符 ( [xy] )
- 匹配不在列表中的任意单个字符 ( [^xy] )
- 匹配某个范围内的任意单个字符 ( [x-y] )
- 特定字符的零次或多次匹配 ( * )
- 特定字符的一次或多次匹配 ( + )
- 特定字符的零次或一次匹配 ( )
- 对正则表达式进行分组 ( ( ) )
- 匹配几个正则表达式中的一个表达式 ( | )
- 在一行的开始进行匹配 ( ^ )
- 在一行的结尾进行匹配 ( $ )
- 匹配包括下划线在内的任一字母数字字符 ( \w )
- 匹配任意非字母数字字符 ( \W )
您对以上内容有何建议或意见,请写下来告诉我,谢谢!!!