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

发布新日志

  • QTP实践心得

    2009-07-07 17:56:29

        最近一直在闷头学习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的路径")这种方法可以动态加载。

       

Open Toolbar