2016-03-07 85 views
1

没有发现收到以下错误而执行的脚本:HP-UFT对象在对象存储库错误

WebList object was not found in the Object Repository. 
Check the Object Repository to confirm that the object exists or to find the correct name for the object. 

Line (1221): "objParent.WebList(vstrObjectName).select vstrValue". 
+0

欢迎来到Stack Overflow。请通过提供更多信息来帮助我们回答您的问题:您正在运行哪个脚本?你期待什么结果?它有助于提供更多与错误有关的代码。有关提问的有用提示,请访问http://stackoverflow.com/help/on-topic – ralphearle

回答

2

我理解,因为对象是不是在仓库中,但可用它不应该是简单在尝试使用'在存储库中定位'

2

它看起来像行(1221)试图通过名称访问WebList对象,但名称存储在一个变量中;它不是代码中的字符串文字。

可能有3种不同的事情发生在这里。 1)如果你试图使用描述性编程,那么它听起来像是vstrObjectName的内容没有包含使得QTP相信该字符串是描述的“:=”符号......所以,QTP认为存储在vstrObjectName中的字符串必须是Object Repository中对象的名称。

我想猜测你正在尝试使用描述性编程,因为(基于事实,父母和参数都包含在变量中),它看起来像避免使用任何字符串文字线。

2)如果你试图控制对象与对象存储库,那么无论是包含在vstrObjectName没有包含一个有效的对象名(属于objParent)字符串,或

3名)objParent提到的对象不是你期望的那个。

在任何情况下,如果是我,我会做的第一件事是线1221作为前添加一个print语句: 打印“vstrObjectName:“” & vstrObjectName &“”” ......和运行它再次。这应该显示你正在引用的字符串。我猜测结果输出线不是你所期望的。

要检查的另一件事是确保包含该行的操作或函数是从包含该操作的OR范围内的该命名对象的操作中执行的。 (即打开动作并按下CTRL-R,它会显示该动作可见的组合或)。如果该行位于函数库中,并且从没有该对象的操作中调用它的本地OR或附加的共享OR,那么您将得到相同的错误。如果使用多个动作,这种问题很容易引起,并且包含对包含行(第1221行)的函数的调用的动作由于它的OR范围而实际上并没有可用的对象。

要回答你问的问题 - 如何将对象添加到OR中 - 你可以使用几种方法 - 记录,guispy添加到OR按钮,从OR屏幕手动添加等......但最后,你需要OR中的对象具有与vstrObjectName中的任何匹配的名称。

0

其中对象可以被选择的一些潜在的例子:

动态更改基于在对象库中的对象的名称的对象:(必须在存储库中存在)

Dim objectname 
objectname = "SAP Work Manager" 
msgbox WpfWindow(objectname).Exist 

选择一个对象不在对象储存库中存在,通过其属性:

WpfWindow("text:=SAPWorkManager").Exist 

Example page of UFT tips