在对象存储库错误中找不到HP-UFT对象

时间:2016-03-07 23:00:40

标签: 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". 

3 个答案:

答案 0 :(得分:2)

我理解,它不应该像对象在存储库中不可用一样简单,但是以防万一 - 尝试使用'在存储库中找到'

答案 1 :(得分:2)

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

这里可能会有3种不同的事情发生。

1)如果您尝试使用描述性编程,那么听起来像vstrObjectName的内容不包含“:=”符号会使QTP认为字符串是描述...所以,QTP认为存储在vstrObjectName中的字符串必须是对象存储库中对象的名称。

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

2)如果您尝试使用Object存储库中的名称控制对象,则vstrObjectName中包含的字符串不包含有效的对象名称(属于objParent),或

3)objParent引用的对象不是你期望的对象。

在任何一种情况下,如果是我,我要做的第一件事是在第1221行之前添加一个print语句: 打印“vstrObjectName:'”& vstrObjectName& “'” ......再次运行它。这应该显示您引用的字符串。我猜测结果输出线不是你想象的那样。

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

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

答案 2 :(得分:0)

可以选择对象的一些可能示例:

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

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

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

WpfWindow("text:=SAPWorkManager").Exist 

Example page of UFT tips

相关问题