3.SetTOProperty()
● 基本含义:设置对象库中某个对象的某个属性的值。
● 公式:对象.SetTOProperty“封装属性名”,“封装属性值”。
● 基础示例:
Browser("百度一下,你就知道").Page("百度一下,你就知道").WebButton("百度一下").SetTOProperty "name","百度一百万下" MsgBox "时间停止,大家一起欣赏此时对象库中WebButton"百度一下"的name值!" |
● 运行结果与分析。
SetTOProperty方法的作用就是改变对象库中的值,当然,使用代码形式的修改对象属性属于临时性的,只在脚本运行时有效,一旦脚本运行结束,对象库里的属性值就会还原,它的生命周期是短的,不过已经足够我们做很多事了。
在本段代码片中,要修改的是WebButton(“百度一下”)这个控件在对象库中的属性,为了证明修改最终是成功的,那么让我们一起先来看一下修改以前的name属性值,如图1-160所示。
图1-160
从图1-160中可以看到,name的属性值是“百度一下”,然后作者把它改成了“百度一百万下”,我们前面讲过,由于SetTOProperty这个方法的生命周期很短,所以,如果要看到修改的效果,必须在脚本结束前,将脚本停住,所以,作者在脚本里加了一个MsgBox方法,并将本行设置断点,这样QTP就会停止下来,此时去刷新一下对象库就能看到百度一下这个按钮的name值已经改变了,如图1-161所示。
图1-161
如图1-161所示,此时对象库中“百度一下”这个控件的name属性值已经变成了作者所设置的“百度一百万下”,到此也证明了实验已成功。需要注意的是,使用SetTOProperty方法,后面的参数是不需要加括号的,因为它没有返回值,当然这是VB中的知识点,在这里稍许提一下,如果在这种情况下加括号是一定会报错的,切记!
小提示:在QTP中,断点的快捷键是F9,使当前断点不生效/生效的快捷键是Ctrl+F9,取消所有断点的快捷键是Ctrl+Shift+F9。
● 企业项目案例臆测。
可以和GetToProperty那个案例结合,假设现在需要将对象库中的对象属性值转变成其他指定的值,这种情况下,就可以使用SetTOProperty方法了。另外,使用SetTOProperty这个方法还有其他好处,比如可以解决一些共享对象库的对象修改和管理问题等。
这里还有一个很经典的自动化测试案例告诉读者,假设某个窗口上有很多待检查的记录,每条记录右边都有一个Check按钮用来检查各条记录。但是,记录个数是不定的,所以Check按钮个数也就不定,只有一个Edit控件显示记录个数。要对每条记录进行检查,也就是要点击每个Check按钮。但是Check按钮由于个数不定,根本没法将每个Check对象都添加到对象库中,因为个数可能太多了(上百个),如果硬要一个个添加到对象库中,是很烦的事。在这里告诉大家一个好办法,就添加一个Check按钮对象,它设有两个特征属性,分别是:label=OK、index=0,然后用下面的脚本就可以完成该自动化任务了:
buttonNum = CInt(JavaWindow("Test").JavaEdit("Record Num").GetROProperty("value")) For buttonIndex = 0 to buttonNum -1 JavaWindow("Text").JavaButton("Check").SetTOProperty("index",buttonIndex) JavaWindow("Text").JavaButton("Check").Click Next |