有付出必有回报。 有得必有失。 有酸甜苦辣的生活才是真正的生活。 我愿意像蜡烛一样发光发热,来照亮我的人生征途!! 日志上的资料都是我个人喜欢的或是对自己有用的,当然有很多是从别人处转载来的,但是都是为了共同进步!希望和大家一起分享! 牛年让自己更"牛"一点!!!

QTP实践心得

上一篇 / 下一篇  2009-07-07 17:56:29 / 个人分类:QTP

    最近一直在闷头学习QTP,同时结合现在手头的项目做实践。毕竟实践才能出真知嘛。在边学习边实践的过程中,还是有一些心得的。结合在论坛上看到的一些帖子,也把自己的一些心得写出来,以供以后参考。

1.两种方式随机选择weblist中的选项
  方法1,利用对象自身接口。
 listlength=Browser("Browser").Page("Page").WebList("xx").Object.length
 randomize
 selectlist=int(listlength*rnd+1)
 'msgbox selectlist
 Browser("Browser").Page("Page").WebList("xx").Select "#"&selectlist
  方法2,利用动态运行时的属性。
 liststr=Browser("Browser").Page("Page").WebList("xx").GetROProperty("all items")
 'msgbox liststr
 'mylist=split(liststr,";")
 'i=Ubound(mylist)
 'msgbox i
 'j=randomnumber(1,i)
 'Browser("Browser").Page("Page").WebList("xx").Select mylist(j)
  方法3,今天突然想起来的,利用items count 属性同样可以,同时比上面的方法简单。
  i=Browser("Browser").Page("Page").WebList("xx").GetROProperty("items count")
  j=randomnumber(1,i)
  Browser("Browser").Page("Page").WebList("xx").Select mylist(j)

2.当某个页面中有许多相同属性的对象,而你又不知道是哪些时,可以用childobject找到所有这些对象,同时利用highlight方法遍历显示这些对象。这样就可以看到相同属性的对象是哪些了。
Set desc=Description.Create()
odesc("micclass").value="WebList"
Set lists=Browser("Browser").Page("Page").ChildObjects(odesc)
i=lists.count()
msgbox i
For j=0 to i-1
 lists(j).highlight
Next

3.QTP9.5版本。我把好几个action的对象合并成一个大的共享对象库后,在QTP脚本中去加载时出现问题:
按照一般的做法是这样:
Set
ObjRepository = CreateObject("Mercury.ObjectRepositoryUtil")
ObjRepository.Load ".tsr文件的绝对路径"
用这种方法的时候,QTP提示我并没有把对象库加载进来。不知道是为什么。
但是我用其他两种方法能解决这个问题:
  1.用associate repository的方法可以把该.tsr关联起来。各个action中的对象也都能正常识别。
  2.用RepositoriesCollection.Add(".tsr的路径")这种方法可以动态加载。

   


TAG: QTP weblist 对象库

地蟒的江湖 引用 删除 dimang11   /   2009-08-28 17:55:17
5
地蟒的江湖 引用 删除 dimang11   /   2009-08-28 17:55:12
公司有正版吗?有的发个给 哥们用用啊~ 盗版插件不会破解啊~~
 

评分:0

我来说两句

Open Toolbar