【问题标题】:QTP/UFT : To perform an action on object which is retrived from Object Repository file (.tsr)QTP/UFT:对从对象存储库文件 (.tsr) 检索的对象执行操作
【发布时间】:2014-06-18 08:52:06
【问题描述】:

我的目标是从对象存储库文件 (.tsr) 中获取一个对象并对该对象执行一些操作,例如单击、设置... 在下面的代码中,“WebButton”对象被捕获。但是当我对这个对象(brObj)执行“点击”操作时。在 UFT 中获取错误消息“由于不可恢复的错误行 (20):brObj.Click “测试运行无法继续”

  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)

【问题讨论】:

    标签: qtp hp-uft


    【解决方案1】:

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

    Dim ObjectRepositoryPath, brObj
    
    ObjectRepositoryPath = "C:\Repository2.tsr"
    RepositoriesCollection.Add ObjectRepositoryPath
    
    Set brObj = Browser("Title").Page("Title").WebButton("Login")
    brObj.Click
    

    【讨论】:

    • 对。 RepositoryFrom.GetObject(str+"."+pgStr+"."+btnStr) 是一个表示 repo 条目的 COM 对象。不是适合回放的测试对象。
    • 是的,我明白了。但是还有另一种方法可以使用“Execute”语句从字符串中获取测试对象,它适用于回放。执行"set brObj = "+str+"."+pgStr+"."+btnStr brObj.Click
    【解决方案2】:

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

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

    【讨论】:

    • 是的,这在技术上是可行的,但完全没有必要,而且会使您的代码难以阅读。
    • 在QTP中我们的脚本如下所示:Browser("").Page("").WebButton().set "" Browser("").Page("")。 Link().Click 每次我们需要编写 Browser.Page.Frame... 但是如果我们从对象存储库文件 (.tsr) 中以字符串形式获取按钮或任何其他对象路径,例如 "Browser("").Page( "").WebButton()" 只需传递对象的逻辑名称,就不必在我们的脚本中编写“Browser.Page.Frame”。我们可以使用“Execute”语句从字符串中获取测试对象,适合回放。
    • 如果您认为这对您有帮助,请接受您自己的答案,以便此问题关闭,并从未解决的问题列表中消失。
    猜你喜欢
    • 2014-08-28
    • 1970-01-01
    • 2014-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多