QTP / UFT:对从Object Repository文件(.tsr)检索的对象执行操作

时间:2014-06-18 08:52:06

标签: qtp hp-uft

我的目标是从Object Repository文件(.tsr)中获取一个对象,并对该对象执行一些操作,如click,set ... 在下面的代码" WebButton"捕获对象。但是当我表演"点击"对此对象的操作(brObj)。在UFT"中获取错误消息由于不可恢复的错误行(20),测试运行无法继续:brObj。点击"

  Dim RepositoryFrom, brObj
  Dim ObjectRepositoryPath, str, pgStr, btnStr  

  ObjectRepositoryPath="C:\Repository2.tsr"

  Set RepositoryFrom = CreateObject("Mercury.ObjectRepositoryUtil")
  RepositoryFrom.Load ObjectRepositoryPath

  str = "Browser("+""""+"Title"+""""+")"
  pgStr = "Page("+""""+"Title"+""""+")"
  btnStr = "WebButton("+""""+"Login"+""""+")"

  'MsgBox str 

  set brObj =  RepositoryFrom.GetObject(str+"."+pgStr+"."+btnStr) 
  brObj.Click 'Getting error for this line

UFT还有另一种方法可以对已经被重新检索的对象执行操作

来自对象存储库文件(.tsr)

2 个答案:

答案 0 :(得分:1)

您从该库访问的COM对象与UFT运行时引擎在回放期间使用的对象不同。如果要在运行时加载对象存储库文件,可以使用RepositoriesCollection实用程序对象将文件添加到可用的对象存储库。加载后,您可以像访问UFT中的任何其他测试对象一样访问测试对象。<​​/ p>

Dim ObjectRepositoryPath, brObj

ObjectRepositoryPath = "C:\Repository2.tsr"
RepositoriesCollection.Add ObjectRepositoryPath

Set brObj = Browser("Title").Page("Title").WebButton("Login")
brObj.Click

答案 1 :(得分:0)

还有另一种方法可以使用“Execute”语句从字符串中获取测试对象,它适合播放。

str = "Browser("+""""+"Title"+""""+")"
pgStr = "Page("+""""+"Title"+""""+")"
btnStr = "WebButton("+""""+"Login"+""""+")"
Execute "set brObj = "+str+"."+pgStr+"."+btnStr"
brObj.Click