Object QTP加载项-未识别对象

Object QTP加载项-未识别对象,object,web,add-in,qtp,identification,Object,Web,Add In,Qtp,Identification,当我禁用某些加载项时,QTP无法识别该项,而这些加载项是在我将它们添加到存储库时检查的 注意:当我将对象添加到存储库中时,我实际上选择了所有加载项-.Net、JAVA、Oracle、Siebel、SAP、Web服务、Silverlight、ActiveX(我知道我是一个Noob)。当我现在选择Web并运行脚本时,它无法识别对象,当我再次添加对象(仅选中Web)时,它将被添加为新对象,并在运行它时被识别 所以我的问题是,一个对象与外接程序的关系是什么?它是如何影响同一对象的属性的?加载项是预定义对

当我禁用某些加载项时,QTP无法识别该项,而这些加载项是在我将它们添加到存储库时检查的

注意:当我将对象添加到存储库中时,我实际上选择了所有加载项-.Net、JAVA、Oracle、Siebel、SAP、Web服务、Silverlight、ActiveX(我知道我是一个Noob)。当我现在选择Web并运行脚本时,它无法识别对象,当我再次添加对象(仅选中Web)时,它将被添加为新对象,并在运行它时被识别

所以我的问题是,一个对象与外接程序的关系是什么?它是如何影响同一对象的属性的?

加载项是预定义对象类型的集合 外接程序包含一组特定的相关UI对象的内置属性集。这有助于QTP更有效地识别特定类型应用程序的运行时对象

例如,基于浏览器的应用程序将使用标准HTML元素是可以预见的,因此基本web对象(即页面、框架、WebButton、WebList)已经在web插件中预先定义

启用所有外接程序的弊端 很可能是因为录制过程中启用了所有加载项,所以您遇到了这个问题。QTP可以从所有这些附加模块中的任何预定义对象中选择它认为合适的对象。您可能会得到一个对象存储库,它是多个加载项中对象类型的混合体

我们以前遇到过类似的问题,web按钮(即html input type=“button”)被记录为
SAPWebButton
。这是因为所有加载项都是在录制过程中启用的,没有人注意到。在我们禁用除Web外接程序以外的所有其他外接程序之前,它工作正常。由于Web加载项只知道
WebButton
而不知道
SAPWebButton
,因此会导致识别问题

防治 正确的方法是在录制之前确定哪个外接程序最适合您的应用程序类型,启用它并禁用其余的外接程序


您必须通过更新运行模式手动更新有问题的对象。如果内容太多,最好从头开始录制。

对象是否属于已卸载的加载项之一?请提供无法识别的对象的描述和类型,以及在仅使用Web录制时创建的对象(而不是所述对象)的类型和描述。抱歉,延迟。我没有记录这些对象,而是通过object spy将它们添加到对象存储库中。当我在仅启用web和Active X的情况下禁用所有加载项时,QTP需要很长时间才能识别初始浏览器对象,最终无法找到相同的对象。如果我启用所有的加载项,它将工作一个gem。我已经将这些对象重新添加到对象存储库中,只有在我选择了Web和Active X的情况下,它才能工作,但我想知道是什么原因导致了问题。感谢您的输入作业。我实际上没有记录这些对象,而是通过object spy将它们添加到对象存储库中。所以不确定实际的问题是什么?@热心者学习者是的,它也可以通过对象间谍发生。只要您启用了所有外接程序,QTP就会尝试将您单击的对象与任何可用的内置类相匹配。尝试检查单击对象时检测到的类。如果你有特定网站的例子,我可能可以帮你更多。它没有检测到浏览器。我试着添加相同的对象,有和没有所说的addins。我能够看到在“标识”部分添加了一些属性。但是,在启用上述加载项时,这些额外属性没有值。Text=“Random Text”Systemutil.Run“iexplore”,“google.com”浏览器(“google”)。Page(“google”)。WebEdit(“GoogleSearch”)。Set Text Browser(“google”)。Page(“google”)。WebButton(“google Search”)。单击上面的按钮是一个测试。我在选择了所有外接程序后添加了Google搜索按钮和搜索文本对象。我尝试在仅选择Web加载项后运行相同的脚本,但它不起作用。请禁用除Web加载项之外的所有加载项。创建新测试,添加对象,然后运行。