51Testing独家连载:(二十三)精通QTP——自动化测试技术领航

发表于:2012-1-11 13:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

  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

53/5<12345>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号